(простите за плохой английский, я немецкий)I2C связи Raspberry Pi 3 и Arduino
Здравствуйте программисты,
Я пытаюсь (без успеха), чтобы отправить данные из Raspberry Pi 3 (мастер) к Arduino (раб):
Вот мой обновленный Arduino код:
#include <Wire.h>
volatile bool flag = false;
void wireHandler(int numBytes)
{
flag = true;
}
void setup()
{
pinMode(13, OUTPUT);
Wire.begin(0x23);
Wire.onReceive(wireHandler);
}
void loop()
{
delay(100);
digitalWrite(13, flag);
}
Мой скрипучий код (C++, г ++ main.cpp -lwiringPi):
#include <iostream>
#include <wiringPi.h>
#include <wiringPiI2C.h>
int main(void)
{
if(wiringPiSetup() == -1)
{
std::cerr << "wiringPiSetup() == -1\n";
return 1;
}
if(wiringPiI2CSetup(0x39) == -1) //is 0x39 correct?
{
std::cerr << "wiringPiI2CSetup(int) == -1\n";
return 1;
}
while(true)
{
wiringPiI2CWrite(0x23, 0x23);
delay(100);
}
}
В теории это должно привести к тому, что светодиод Arduino Led (контакт 13) начнет мигать. Однако светодиод остается темным.
Буду признателен, если кто-нибудь сможет объяснить мне, почему эта программа не работает и как ее исправить.
И да I2C активирован в Raspi-Config.
Спасибо, теперь, когда вы говорите об этом, это имеет смысл. Однако это все еще не работает. Любой вход? – Kryptomatrix
Протестировано между двумя ардуинами. Код обновлен. – KIIV
Благодарим вас за помощь, но это не решает мою проблему: если раб - это ардуино с моим кодом, а мастер - еще один ардуино, все работает отлично. Но если мастер - малина, это больше не работает. Возможно ли, что проблема в том, что малина имеет логику 3,3 В? – Kryptomatrix