Как запретить подчиненному устройству выполнять код до тех пор, пока мастер не отправит новое значение? I2C
Я полный нуб, когда дело касается Arduino. Я медленно учусь. Я пробовал этот код, который в основном получает входные данные в Arduino1 (главный) и отображает символ на последовательном мониторе Arduino2 (ведомый). Кодовые слова просто находятся, но мне просто нужно, чтобы ведомое устройство подождало, пока ведущее устройство не отправит следующий символ. Прямо сейчас подчиненное устройство непрерывно печатает символ.
Главный код:
#include "Wire.h"
char ch;
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
while(Serial.available()==0)
{}
ch=Serial.read();
delay(1000);
Serial.print("The character that you entered is ");
Serial.println(ch);
Wire.beginTransmission(9);
Wire.write(ch);
Wire.endTransmission();
}
Подчиненный код:
#include "Wire.h"
char x;
void setup() {
Serial.begin(9600);
Wire.begin(9);
Wire.onReceive(Event);
}
void Event(char bytes){
x = Wire.read();
}
void loop() {
Serial.print("The character that you entered in the other Arduino is ");
Serial.println(x);
}
Я знаю, что это будет просто, но я просто не могу понять, что делать. Пожалуйста, помогите мне
@Kishore, 👍0
1 ответ
Лучший ответ:
▲ 2
#include "Wire.h"
volatile char x;
volatile bool received;
void setup() {
Serial.begin(9600);
Wire.begin(9);
Wire.onReceive(Event);
}
void Event(char bytes){
x = Wire.read();
received = true;
}
void loop() {
if (received) {
received = false;
Serial.print("The character that you entered in the other Arduino is ");
Serial.println(x);
}
}
,
@Juraj
Смотрите также:
- Соединение I2C с модулем камеры MT9D111, странные результаты после записи регистров через i2C
- Как назвать датчики температуры вместо адреса печати с помощью датчиков ds2482-100 и ds18b20 - Справка
- Сколько читаемого текста может поместиться в ATTINY85? Возможность прокрутки буклета на 0,91-дюймовом OLED-дисплее
- Нужно сделать кнопку, чтобы выключить будильник на часах
- Печать string and integer LCD
- Отправка и получение различных типов данных через I2C в Arduino
- Как работают функции вне цикла void?
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?