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