Как отправлять и получать данные с Arduino Uno на Arduino Mega с помощью I2C?
Я пытаюсь отправить данные в виде строки с Arduino Uno на другой Arduino Mega. Я читал о соединении I2C, где мы подключаем RX к TX напротив.
Как запустить и отправлять и получать данные между ними? Я понятия не имею, как можно написать код.
1 ответ
Лучший ответ:
▲ 0
На instructables есть хороший пост.
Короче код
Мастер-код:
// Включаем необходимую библиотеку Wire для I2C
#include <Wire.h>
int x = 0;
void setup() {
// Запускаем шину I2C как мастер
Wire.begin();
}
void loop() {
Wire.beginTransmission(9); // передать на устройство №9
Wire.write(x); // отправляет х
Wire.endTransmission(); // прекращаем передачу
x++; // Увеличение х
if (x > 5) x = 0; // `сбросить x, как только он станет равным 6
delay(500);
}
Подчиненный код
// Включаем необходимую библиотеку Wire для I2C
#include <Wire.h>
int LED = 13;
int x = 0;
void setup() {
// Определяем контакт светодиода как выход
pinMode (LED, OUTPUT);
// Запускаем шину I2C как ведомую по адресу 9
Wire.begin(9);
// Прикрепите функцию для запуска при получении чего-либо.
Wire.onReceive(receiveEvent);
}
void receiveEvent(int bytes) {
x = Wire.read(); // прочитать один символ из I2C
}
void loop() {
//Если полученное значение равно 0, светодиод мигает в течение 200 мс
if (x == '0') {
digitalWrite(LED, HIGH);
delay(200);
digitalWrite(LED, LOW);
delay(200);
}
//Если полученное значение равно 3 миганиям светодиода в течение 400 мс
if (x == '3') {
digitalWrite(LED, HIGH);
delay(400);
digitalWrite(LED, LOW);
delay(400);
}
}
В посте с инструкциями показано гораздо больше объяснений.
,
@Michel Keijzers
Смотрите также:
- Отправка строки из RPi в Arduino - Рабочий код
- Код I2C работает на Mega 2560, но не на Uno и nano
- Сколько соединений может создать метод Arduino I2C?
- Ошибка в связи I2C Между Arduino и Raspberry Pi
- Как использовать SPI на Arduino?
- Отправка и получение различных типов данных через I2C в Arduino
- Как сбросить или отформатировать Arduino?
- Как работают функции вне цикла void?