Byte2bool

A projekt nehézségi szintje: könnyű ()

Az Arduino-n egy byte értéke emelkedik ciklusonként eggyel. Amikor eléri a maximumát, túlcsordul, és kezdi elölről a számolást - ezzel legalább nem kell foglalkozni. A byte bitekből áll, ezeknek az értékváltozásait jeleníthetjük meg a Breadboard-ra összerakott kapcsolással. Ez nyolc led-et tartalmaz - nyolc előtét-ellenállással.

A LED-ek pin-enként való kikötésénél ügyelni kell arra, hogy az éppen aktuális byte tartalmat a monitorra is kiküldjük. A Serial.print funkció a soros kommunikációhoz alapból használja az 1. és 2. pin-eket, így a programhoz a 3. pin-től használhatjuk a jeleket.

A pin-eket digitális kimeneti csatornaként kell deklarálni. A projekten keresztül jól látható, hogy a legalacsonyabb helyi-értékű 0.bit értéke változik a leggyorsabban. A program futása a "delay()" idő változtatásával módosítható.

Arduino kids projekt: Byte2bool 1Arduino kids projekt: Byte2bool 2

Arduino UNO board
Breadboard
Nyolc vezeték (esetleg kötegben) apa-apa típus
+egy vezeték apa-apa típus
Nyolc LED
Nyolc előtét ellenállás (1-5 kΩ)

A LED-ek hosszabbik (katód; +) lábait rendre a pin2 .. pin9-ekhez kell kötni. Az ellenállásokat a LED-ek rövidebbik lábait (anódok; GND) az előtét ellenállásokhoz kell kötni, azoknak a másik lábait a közös grundra (GND) kell beszurkálni.

A közös grundot az Arduino GND kimenetére kell kötni. A tápot (5V) nem szükséges bekötni, ezt a LED-ek a kimeneti pin-eken keresztül kapják.

Byte2bool projekt vezetékezés

A képre kattintva az felnagyítható.

A projekthez nem szükséges könyvtár hívása, aktort (a LED-eken kívül) vagy szenzort nem tartalmaz.

// Az Arduino-n egy byte értéke emelkedik ciklusonként eggyel. 
// Amikor eléri a maximumát, túlcsordul, és kezdi elölről a számolást - 
// ezzel legalább nem kell foglalkozni. A byte bitekből áll, ezeknek 
// az értékváltozásait jeleníthetjük meg a Breadboard-ra összerakott 
// kapcsolással. Ez nyolc led-et tartalmaz - nyolc előtét-ellenállással.

// ob121.com, Arduino Projekts, byte2bool

#define byteBit0 2  // pin 2: a byte 0. bitje
#define byteBit1 3  // pin 3: a byte 1. bitje
#define byteBit2 4  // pin 4: a byte 2. bitje
#define byteBit3 5  // pin 5: a byte 3. bitje
#define byteBit4 6  // pin 6: a byte 4. bitje
#define byteBit5 7  // pin 7: a byte 5. bitje
#define byteBit6 8  // pin 8: a byte 6. bitje
#define byteBit7 9  // pin 9: a byte 7. bitje

byte szamol;        // ennek a byte-nak a tartalma 
                    // lesz a LED-ekkel kijelezve

void setup() {                   // első és egyszeri végrehajtás
  Serial.begin(9600);            // a soros kommunikáció sebessége 
                                 // :ezt kell a monitoron is beállítani
  szamol = 0;                    // a byte 0-ról kezd
  pinMode(byteBit0, OUTPUT);     // a pin-ek definiálása kimenetként,
  pinMode(byteBit1, OUTPUT);     // a #define-nál definiált sorrendben
  pinMode(byteBit2, OUTPUT);
  pinMode(byteBit3, OUTPUT);  
  pinMode(byteBit4, OUTPUT);
  pinMode(byteBit5, OUTPUT);
  pinMode(byteBit6, OUTPUT);
  pinMode(byteBit7, OUTPUT);      
}

void loop() {                    // ciklikus végrehajtás
  
  szamol++;                      // a byte tartalmának a növelése 1-egyel
  
  digitalWrite(byteBit0,(bitRead (szamol, 0)));     // a byte egy-egy bitjének a kiírása
  digitalWrite(byteBit1,(bitRead (szamol, 1)));     // az adott kimeneti pin-ekre.
  digitalWrite(byteBit2,(bitRead (szamol, 2)));
  digitalWrite(byteBit3,(bitRead (szamol, 3)));
  digitalWrite(byteBit4,(bitRead (szamol, 4)));
  digitalWrite(byteBit5,(bitRead (szamol, 5)));
  digitalWrite(byteBit6,(bitRead (szamol, 6)));
  digitalWrite(byteBit7,(bitRead (szamol, 7)));  
  
  Serial.print("\n");                               // "új sor" a soros monitorra
  Serial.print(szamol);                             // a byte tartalmának kiírása a soros monitorra
  delay(100);                                       // várakozás (0,1 másodperc) - ennek megváltoztatásával
}                                                   // a program gyorsítható - lassítható.

A soros monitoron a led-ek villogása közben az adott kombinációhoz tartozó bájt-érték jelenik meg mindig:

A byte2bool az Arduino Kids oktatási anyag része.