Forum » Programiranje » Arduino - Serial comunication težava
Arduino - Serial comunication težava
jez23 ::
Pozdravljeni,
Imam težavo pri komuniciranju arduina s bluetooth modulom in računalnikom oz telefonom.
Gre pa za to da želim pošiljati vrednosti od 0-4 preko seriske komunikacije.
uporabljam Arduino Mega 2560 in HC-06 bluetooth modul, podatke pa pošiljam oz sprejemam preko bluetooth konzole na telefonu oz na računalniku. Vse skupaj pa kontorliram preko Serial monitorja na Arduino 1.5.6-r2.
Bluetooth je priklopljen preko serial1 RX in TX pinov. Spodnja koda normalno deluje, če jo priredim za delovanje preko USB serijske komunikacije.
Ko pošiljam vrednosti(eno številko od 0-4) iz telefona, ki je sparjen s HC-06, mi na arduino sprejme vrednost 0, ne glede na to kaj vnesem. Je morda problem v int spremenljivkah(poikusil sem s byte in dela enako).
Koda na arduinu:
int Kompresor = 12; //Pini na katerih so LED diode
int Ventilator = 10;
int Grelec = 8;
void setup()
{
Serial1.begin(9600, SERIAL_8N1);
Serial.begin(9600, SERIAL_8N1);
pinMode(Kompresor, OUTPUT);
pinMode(Ventilator, OUTPUT);
pinMode(Grelec, OUTPUT);
}
void loop()
{
while (Serial1.available() == 0);
int val = Serial1.read();
if(val == 0)
{
digitalWrite(Kompresor, LOW);
digitalWrite(Ventilator, LOW);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 1)
{
digitalWrite(Kompresor, HIGH);
digitalWrite(Ventilator, LOW);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 2)
{
digitalWrite(Kompresor, LOW);
digitalWrite(Ventilator, HIGH);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 3)
{
digitalWrite(Kompresor, HIGH);
digitalWrite(Ventilator, HIGH);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 4)
{
digitalWrite(Kompresor, LOW);
digitalWrite(Ventilator, LOW);
digitalWrite(Grelec, HIGH);
Serial1.println(val);
Serial.println(val);
}
else
{
Serial.println("Invalid!");
Serial.println(val);
}
delay(50);
}
Imam težavo pri komuniciranju arduina s bluetooth modulom in računalnikom oz telefonom.
Gre pa za to da želim pošiljati vrednosti od 0-4 preko seriske komunikacije.
uporabljam Arduino Mega 2560 in HC-06 bluetooth modul, podatke pa pošiljam oz sprejemam preko bluetooth konzole na telefonu oz na računalniku. Vse skupaj pa kontorliram preko Serial monitorja na Arduino 1.5.6-r2.
Bluetooth je priklopljen preko serial1 RX in TX pinov. Spodnja koda normalno deluje, če jo priredim za delovanje preko USB serijske komunikacije.
Ko pošiljam vrednosti(eno številko od 0-4) iz telefona, ki je sparjen s HC-06, mi na arduino sprejme vrednost 0, ne glede na to kaj vnesem. Je morda problem v int spremenljivkah(poikusil sem s byte in dela enako).
Koda na arduinu:
int Kompresor = 12; //Pini na katerih so LED diode
int Ventilator = 10;
int Grelec = 8;
void setup()
{
Serial1.begin(9600, SERIAL_8N1);
Serial.begin(9600, SERIAL_8N1);
pinMode(Kompresor, OUTPUT);
pinMode(Ventilator, OUTPUT);
pinMode(Grelec, OUTPUT);
}
void loop()
{
while (Serial1.available() == 0);
int val = Serial1.read();
if(val == 0)
{
digitalWrite(Kompresor, LOW);
digitalWrite(Ventilator, LOW);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 1)
{
digitalWrite(Kompresor, HIGH);
digitalWrite(Ventilator, LOW);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 2)
{
digitalWrite(Kompresor, LOW);
digitalWrite(Ventilator, HIGH);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 3)
{
digitalWrite(Kompresor, HIGH);
digitalWrite(Ventilator, HIGH);
digitalWrite(Grelec, LOW);
Serial1.println(val);
Serial.println(val);
}
else if(val == 4)
{
digitalWrite(Kompresor, LOW);
digitalWrite(Ventilator, LOW);
digitalWrite(Grelec, HIGH);
Serial1.println(val);
Serial.println(val);
}
else
{
Serial.println("Invalid!");
Serial.println(val);
}
delay(50);
}
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Merjenje prevodnosti vode?Oddelek: Elektrotehnika in elektronika | 3023 (2178) | Ribič |
» | Arduino kot časovni releOddelek: Pomoč in nasveti | 1607 (1193) | davor92 |
» | Pomoč C++Oddelek: Pomoč in nasveti | 1350 (1069) | samo111 |
» | Arduino in luči (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 12064 (9690) | FX6300B |
» | Arduino "leteče luči"Oddelek: Elektrotehnika in elektronika | 2997 (1874) | zrataj4201 |