Pewnie zauważyłeś że w poradniku #3 przy podłączeniu 10 diod powoli zaczynało brakować miejsca w naszym Arduino. Można jednak ten problem sprytnie obejść przy użyciu rejestru przesuwnego 74HC595 dostępnego w naszym starter kicie.
Na poniższym zdjęciu opisane są wyprowadzenia pinów naszego rejestru. Do pinów Q1-Q7 oraz Q15 podłączamy wejścia
Vcc i MR podłączamy do +5v.
DS-dataPin czyli podłączamy do pinu zdefiniowanego w kodzie
ST_CP-latchPin czyli podłączamy do pinu zdefiniowanego w kodzie
SH_CP-clockPin czyli podłączamy do pinu zdefiniowanego w kodzie
GND, OE podłączamy do GND w Arduino
Na początek podłączymy diody i rejestr.
Teraz przejdźmy do naszego kodu. Do programu migającego diodami nie jest konieczne użycie biblioteki, można to zrobić lecz moim zdaniem nie ma to najmniejszego sensu. My będziemy pisali bez użycia bibliotek. Kod powinien być dla Ciebie zrozumiały, ponieważ prawie wszystkie funkcje poruszaliśmy w poprzednich odcinkach kursu.
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 |
int lPin = 8; int cPin = 12; int dPin = 11; byte data = 0; void setup() { pinMode(lPin, OUTPUT); pinMode(cPin, OUTPUT); pinMode(dPin, OUTPUT); } void loop() { blinkAll(1,500); for (int j = 0; j < 8; j++) { lightShiftPinA(j); delay(1000); } } void lightShiftPinA(int p) { int pin; pin = 1<< p; digitalWrite(lPin, LOW); shiftOut(dPin, cPin, MSBFIRST, pin); digitalWrite(lPin, HIGH); } void lightShiftPinB(int p) { int pin; pin = 1; for (int x = 0; x < p; x++) { pin = pin * 2; } digitalWrite(lPin, LOW); shiftOut(dPin, cPin, MSBFIRST, pin); digitalWrite(lPin, HIGH); } void blinkAll(int n, int d) { digitalWrite(lPin, LOW); shiftOut(d, cPin, MSBFIRST, 0); digitalWrite(lPin, HIGH); delay(200); for (int x = 0; x < n; x++) { digitalWrite(lPin, LOW); shiftOut(d, cPin, MSBFIRST, 255); digitalWrite(lPin, HIGH); delay(d); digitalWrite(lPin, LOW); shiftOut(dPin, cPin, MSBFIRST, 0); digitalWrite(lPin, HIGH); delay(d); } } |
Powyższy kod mignie na początek wszystkimi diodami a potem będą migały po kolei. Jako ćwiczenie postaraj się zapisać ten program bez użycia pętli jeżeli będziesz miał z tym jakieś problemy napisz w komentarzu.
Za pomocą rejestru możemy podłączyć wyświetlacz 16×2 oraz wiele innych komponentów jednak o tym dowiesz się w następnych artykułach.
[su_button url=”https://roboblog.eu/2015/12/27/arduino-poradnik-4/” size=”7″]Poprzednia część kursu[/su_button]
[su_button url=”https://roboblog.eu/2016/02/26/arduino-poradnik/” size=”7″]Następna część kursu[/su_button]