4. Przykład wykorzystania klawiatury
Ze względu na to, że to jest klawiatura to przykładów na jej zastosowanie jest bardzo dużo, w związku z tym pokaże jak przy pomocy przycisków regulować jasność diody.
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
#include <Keypad.h> //dodaj bibliotekę obsługującą klawiaturę const byte wiersze = 4; //ilość wierszy klawiatury const byte kolumny = 4; //ilość kolumn klawiatury int DiodaNiebieska = 10; int DiodaCzerwona = 11; int CzerwonaPWM = 0; int NiebieskaPWM = 0; char klawiatura[wiersze][kolumny] = { //ustaw rozkład klawiszy {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte wierszePiny[wiersze] = {9,8,7,6}; //wiersze podłączone do pinów (numeracja od lewej strony do prawej) byte kolumnyPiny[kolumny] = {5,4,3,2}; //kolumny podłączone do pinów (numeracja od lewej strony do prawej) //utwórz klawiaturę na postawienie ustawienia klawiszy, pinów Arduino oraz ilości kolumn i wierszy Keypad klaw1 = Keypad( makeKeymap(klawiatura), wierszePiny, kolumnyPiny, wiersze, kolumny ); void setup() { pinMode(DiodaCzerwona, OUTPUT); pinMode(DiodaNiebieska, OUTPUT); Serial.begin(9600); //rozpocznij transmisję UART } void loop() { analogWrite(DiodaCzerwona,CzerwonaPWM); analogWrite(DiodaNiebieska,NiebieskaPWM); char przycisk = klaw1.getKey(); //zmiennej char przypisujemy zwrócony znak z klawiatury if (przycisk == '5') //jeżeli wykryto wciśnięty przycisk to: { NiebieskaPWM = NiebieskaPWM + 50; } if(NiebieskaPWM >= 255) { NiebieskaPWM == 0; } if (przycisk == '8') //jeżeli wykryto wciśnięty przycisk to: { NiebieskaPWM = NiebieskaPWM - 50; } if (przycisk == '6') //jeżeli wykryto wciśnięty przycisk to: { CzerwonaPWM = CzerwonaPWM + 50; } if(CzerwonaPWM >= 255) { CzerwonaPWM == 0; } if (przycisk == '9') //jeżeli wykryto wciśnięty przycisk to: { CzerwonaPWM = CzerwonaPWM - 50; } if (przycisk == '0') //jeżeli wykryto wciśnięty przycisk to: { NiebieskaPWM = NiebieskaPWM - NiebieskaPWM; } if (przycisk == '#') //jeżeli wykryto wciśnięty przycisk to: { CzerwonaPWM = CzerwonaPWM - CzerwonaPWM; } if (przycisk == '2') //jeżeli wykryto wciśnięty przycisk to: { NiebieskaPWM = NiebieskaPWM + 255; } if (przycisk == '3') //jeżeli wykryto wciśnięty przycisk to: { CzerwonaPWM = CzerwonaPWM + 255; } } |
Program może wygląda na trudny i skomplikowany, ale taki nie jest. Do poprzedniego programu dopisałem obsługę dwóch diód oraz dwie zmienne przechowujące wartości PWM tych diód. Przyciskami 5 i 6 zwiększamy wartość PWM o 50, oraz jeżeli wartość, którego z PWM będzie większa bądź równa 255 to ta wartość ma spaść do 0. Przyciskami 8 i 9 zmniejszamy wartość PWM o 50. Przyciskami 2 i 3 ustawiamy maksymalną wartość PWM, a przyciskami 0 i # ustawiamy minimalną wartość. Program jest na tyle prosty, że już głębsze jego opisywanie jest zbędne, ponieważ zakładam, że już umiesz takie podstawy (jeżeli byłbym w błędzie to zapraszam do początkowych części kursu ;) )
W efekcie powinniśmy otrzymać coś takiego:
Materiały do dzisiejszej części kursu:
Jeżeli chcesz być informowany na bieżąco o nowych częściach kursu to kliknij „Lubię to!” bądź subskrybuj naszą stronę, aby otrzymywać na adres e-mail nowości ze strony. Jeżeli masz jakieś pytania to śmiało zadawaj je na forum ; )