Hello World!
Két Arduino között szeretnék soros kapcsolatot létrehozni és tizedestörtet küldeni, illetve fogadni.
Adó:
Kód: Egész kijelölése
unsigned int i = 25;
float e;
float v;
unsigned long int vv;
void setup(){
Serial.begin(9600);
}
void loop(){
e = (float)i + 0.1;
v = e*10;
vv = (unsigned long int)v;
Serial.println(vv);
delay(5000);
}
Vevő:
Kód: Egész kijelölése
float dekodolas;
unsigned long int reading;
void setup(){
Serial.begin(9600);
}
void loop(){
if(Serial.available()>0){
reading = Serial.read();
dekodolas = (float)reading/10;
Serial.println(dekodolas);
delay(5000);
}
}
Tulajdonképpen a működés röviden, hogy az adó rész a 25-ös számhoz hozzáadja a o.1-et, ami lesz 25.1, megszorozza ezt tizzel, lesz 251, elküldi, a vevő rész ezt tizzel elosztja, vagyis újból 25.1 lesz. A kapcsolat két Arduino között, az egyik Duemilanove, a másik Mega él. A Duemilanove RX pinje a Mega TX pinjéhez, a Duemilanove TX pinje a Mega RX pinjéhez csatlakozik egy-egy vezeték segitségével. A Duemilanove kiküldi az adatot, vagyis ha egy vezetéket veszek és beteszem az egyik végét az RX-hez, a másikot a TX-hez, látom a Serial Monitoron a 251-es számot. Viszont a Mega semmit sem fogad, mivel a serial.available()-s feltétel nem teljesül. Nem tudom mért nem kommunikálnak. Ha valakinek van megoldása, szivesen fogadom.
Köszönettel,
Bocz Hunor-Chris!