Při testování komunikace po sériové lince se může někdy hodit si přijatá data zobrazit.
Napíšeme si malý program, který nám zobrazí přijatá data na osmi led diodách. Z digitálních pinů 2 až 9, připojíme osm LED diod přes rezistory na zem (Gnd). Takže svítit budou při Log_1 (HIGH). Přijatá data se maskují jednotlivými bity a pokud je výsledek pravda tak rozsvítí příslušnou diodu.
Napíšeme si malý program, který nám zobrazí přijatá data na osmi led diodách. Z digitálních pinů 2 až 9, připojíme osm LED diod přes rezistory na zem (Gnd). Takže svítit budou při Log_1 (HIGH). Přijatá data se maskují jednotlivými bity a pokud je výsledek pravda tak rozsvítí příslušnou diodu.
#define LedPin1 2
#define LedPin2 3
#define LedPin3 4
#define LedPin4 5
#define LedPin5 6
#define LedPin6 7
#define LedPin7 8
#define LedPin8 9
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(LedPin1, OUTPUT);
pinMode(LedPin2, OUTPUT);
pinMode(LedPin3, OUTPUT);
pinMode(LedPin4, OUTPUT);
pinMode(LedPin5, OUTPUT);
pinMode(LedPin6, OUTPUT);
pinMode(LedPin7, OUTPUT);
pinMode(LedPin8, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available() > 0)
{
byte ch = Serial.read();
digitalWrite(LedPin1, LOW);
digitalWrite(LedPin2, LOW);
digitalWrite(LedPin3, LOW);
digitalWrite(LedPin4, LOW);
digitalWrite(LedPin5, LOW);
digitalWrite(LedPin6, LOW);
digitalWrite(LedPin7, LOW);
digitalWrite(LedPin8, LOW);
if (ch & B00000001) digitalWrite(LedPin1,HIGH);
if (ch & B00000010) digitalWrite(LedPin2,HIGH);
if (ch & B00000100) digitalWrite(LedPin3,HIGH);
if (ch & B00001000) digitalWrite(LedPin4,HIGH);
if (ch & B00010000) digitalWrite(LedPin5,HIGH);
if (ch & B00100000) digitalWrite(LedPin6,HIGH);
if (ch & B01000000) digitalWrite(LedPin7,HIGH);
if (ch & B10000000) digitalWrite(LedPin8,HIGH);
}
}
Žádné komentáře:
Okomentovat