
Beispiel ⇒ Schieberegister
Im binären System werden ganzzahlige Werte durch eine Folge von 0 und 1 dargestellt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | void setup() { byte Zahl = 255; Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} Serial.print(Zahl, BIN); Serial.println(“\tDezimal: ” + String(Zahl, DEC)); Serial.println(“————————————-”); Serial.println(“shift links:”); Serial.println(“————————————-”); // shift links for (int i = 7; i > 0; i–) { Zahl = Zahl « 1; Serial.print(Zahl, BIN); // Anzeige: Dezimal, Binär Serial.println(“\tDezimal: ” + String(Zahl, DEC)); } Serial.println(“————————————-”); // Neustart Zahl = 255; Serial.print(Zahl, BIN); Serial.println(“\tDezimal: ” + String(Zahl, DEC)); Serial.println(“shift rechts: zur Verdeutlichung Anzahl 0 erg\u00e4nzt”); Serial.println(“————————————-”); // shift rechts for (int i = 0; i < 7; i++) { Zahl = Zahl » 1; Serial.print(Zahl, BIN); Serial.print(“\t”); // zur Verdeutlichung nicht angezeigte 0 ergänzen for (int j = 0; j <= i; j++) { Serial.print(“0”); } Serial.print(Zahl, BIN); // Anzeige: Dezimal, Binär Serial.println(“\tDezimal: ” + String(Zahl, DEC)); } // ~ -> Bits umkehren Zahl = B11111100; Serial.println(“————————————-”); Serial.println(“Bits mit ~ umkehren”); Serial.print(Zahl, BIN); Serial.println(“\tDezimal: ” + String(Zahl, DEC)); Zahl = ~ Zahl; Serial.print(Zahl, BIN); Serial.println(“\tDezimal: ” + String(Zahl, DEC)); } void loop() { // bleibt leer, Programm läuft nur einmal } |
So sieht es aus:


Beispiel Lauflicht mit 5 LEDs
So sieht es aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | void setup() { // LEDs 3 bis 7 als OUTPUT definieren DDRD = B11111000; } void loop() { // Lauflicht hin Start mit LED Pin 7 PORTD = B10000000; delay(200); for (int i = 0; i < 4; i++) { /* 1 Bit nach rechts schieben B01000000 -> Pin 6 B00100000 -> Pin 5 B00010000 -> Pin 4 B00001000 -> Pin 3 */ PORTD = PORTD » 1; delay(200); } // Lauflicht zurück Start mit LED Pin 3 PORTD = B00001000; delay(200); for (int i = 0; i < 4; i++) { /* 1 Bit nach links schieben B00010000 -> Pin 4 B00100000 -> Pin 5 B01000000 -> Pin 6 B10000000 -> Pin 7 */ PORTD = PORTD « 1; delay(200); } } |
Letzte Aktualisierung: