INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Hej to mój pierwszy post w Majsterkowie więc proszę o wyrozumiałość.Przygotowałem wyświetlacz LCD z możliwością wyłączenia podświetlenia.
Potrzebne elementy:
Wszystkie potrzebne elementy można kupić np. w Botland
- Arduino Uno lub Leonardo
- Rezystor 10 kilo oma
- Potencjometr 10k
- Wyświetlacz LCD
- Przycisk (Tact Switch)
- Trochę kabelków
Wszystko to znajdziecie także w np. w Starter Kicie takim jak Ten
Przejdźmy do wykonania.
Montujemy poniższy obwód.
A następnie wgrywamy do arduino poniższy kod
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int przycisk = 8; int dioda = 13; int state = HIGH; int reading; int previous = LOW; long time = 0; long debounce = 200; void setup() { pinMode(przycisk, INPUT); pinMode(dioda, OUTPUT); lcd.begin(16, 2); lcd.print("MAJSTERKOWO"); lcd.setCursor(0, 1); lcd.print("JEST SUPER"); } void loop() { reading = digitalRead(przycisk); if (reading == HIGH && previous == LOW && millis() - time > debounce) { if (state == HIGH) state = LOW; else state = HIGH; time = millis(); } digitalWrite(dioda, state); previous = reading; }
Na koniec prezentacja działania.
Przed wciśnięciem przycisku.
Oraz po wciśnięciu.
Myślę że ten prosty projekt się spodobał, a początkującym przydał.
PS: Przepraszam za jakość zdjęć ale do dyspozycji mam tylko go pro.
INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(
Fajny projekt dla początkujących. Mi się też przyda.
“int siwiatlo = 13;”
ehh… popraw to proszę…
Nie licząc błędów ortograficznych spoko projekt.
po co funcja loop i jak działa?
zamiast tych intów
trzeba było dać booleany, które zajmują mniej pamięci.
a to debounce jest niepotrzebne mi zawsze działało bez niego.
a jak już chcesz z tego korzystać to lepiej było użyć #define a nie long
albo const int bo long zużywa więcej pamięci
i jak piszesz zmienne po angielsku to wszystkie a nie np didigtalWrtie(DIODA, state)
i jeszcze jedno ten obrazek z fritzinga jest nieczytelny
a i przydałby się film a nie same zdjęcia
Próbuj młody dalej może kiedyś ci się uda :D
Ja nie kapuje ARDUINO, czemu int a nie char. ARDUINO UNO opiera się na Atmega328, który ma strukturę 8 bitową, wiec czemu używa się 32 bitowego typu danych(int), a nie 8(char). Tylko niepotrzebne operacje musi procesor wykonać i wiecej pamieci zajmuje. Na koniec, jeśli się mylę to dajcie znać.
Nie rozumiem po co rezystor do masy na przycisku , przecież arduino ma własne rezystory pułk up i pull down. Aby je włączyć , wystarczy funkcja digitaliWrite. Można jej użyć nawet jeśli pin został wcześniej zadeklarowany jako wejście.
Spoko, ale to da się zrobić to łatwiej, wystarczy przycisk wrzucić między +5 V a pin 15 wyświetlacza, tylko musi być on dwu-pozycyjny. I tak BTW to fajny samsung w tle :-).
niestety ale ten projekt na TINKERCAD -nie działa !