Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
**W trakcie edycji**
Dla projektu HKU arduino postanowiłem stworzyć organizer na biurko z ekranem LCD, który wyświetla cytaty inspiracji, które podniosą Cię, gdy obrócisz potencjometr!
Zajmę się głównie sprawami technicznymi arduino, o ile masz coś w rodzaju drewnianego pudełka do ukrycia Arduino, a wyświetlacz LCD w osobistym urządzeniu może przybrać dowolną pożądaną formę.
Rzeczy, których będziesz potrzebować
- *arduino uno
- miernik garnkowy
- *męskie przewody do prototypowania
- * Moduł LCD! Z czytnikiem kart SD! (mam arduino tft LCD)
- *Karta micro sd
- *drewno (oddałem do recyklingu stare mini szuflady i użyłem kilku zapasowych części drewnianych, upewnij się, że możesz przynajmniej uformować małe pudełko, w którym schowasz swoje arduino!
Krok 1: Konfigurowanie potencjometru na Arduino
Podłącz miernik doniczki, jak pokazano na rysunku!
aby miernik zaczął działać
Musisz zacząć od kilku zmiennych na górze szkicu przed konfiguracją:
kod:
const int analogInPin = A0; // Pin wejścia analogowego, do którego podłączony jest potencjometr
int sensorValue = 0; // wartość odczytana z puli int outputValue = 0; // wyjście wartości do PWM (wyjście analogowe)
Na rysunku 2 pokazuję, jak potencjometr jest mapowany w pętli void
kod:
// odczytaj wartość analogową:
sensorValue = analogRead(analogInPin); // zmapuj go na zakres wyjścia analogowego: outputValue = map(sensorValue, 0, 1023, 0, 255); String stuffToPrint = String(wartośćwyjściowa); // zmiana wartości wyjścia analogowego:
stuffToPrint.toCharArray(wydruk, 9); // tekst statyczny myScreen.setTextSize(1);
Serial.print("czujnik = "); Serial.print(wartość czujnika); Serial.print("\t wyjście = "); Serial.println(wartośćwyjściowa);
opóźnienie(50);
to mapuje dane analogowe z potencjometru do zakresu od 0 do 255, użyjemy tego zakresu do sterowania pokazem slajdów na ekranie LCD
Jeśli potrzebujesz pomocy w ustawieniu potencjometru; Użyłem kodu z tego pomocnego samouczka, piny są dokładnie takie same i będą działać z konfiguracją LCD w następnych krokach.
www.toptechboy.com/arduino/lesson-11-arduin…
Krok 2: Konfiguracja LCD
Ustaw piny jak w powyższym przykładzie.
Gdy zrobisz to poprawnie, ekran zaświeci się na biało.
Jeśli potrzebujesz dodatkowej pomocy lub chcesz użyć przykładowego kodu do przetestowania swojego wyświetlacza, możesz zapoznać się z oficjalnym samouczkiem dla tego modułu i jego przykładami tutaj
w następnym kroku częściowo użyjemy „rysowania obrazu z karty SD”.
Krok 3: Konfiguracja pokazu slajdów
Teraz, gdy mamy już skonfigurowany potencjometr i wyświetlacz LCD, możemy ustawić „pokaz slajdów” przy użyciu zmapowanych wartości potencjometru
Korzystając z zakresu od 0 do 255 możemy wskazać pewien zakres, w którym możemy wyzwolić arduino, aby wyświetliło jakąś treść na LCD.
Pierwszy przykład, jak pokazano na obrazku:
if (wartośćwyjściowa < 51){ //zakres jeden if (jeden zakres == prawda){ drugi zakres = prawda; mójEkran.setRotation(90); mojeEkran.tło(0, 0, 0); mojeEkran.stroke(255, 255, 255); myScreen.text("Cześć cudownie, ", 10, 50); myScreen.text("obróć pinezkę > do", 10, 60); myScreen.text("Zdobądź zachętę.", 10, 70); rangeOne = fałsz;
Jeśli potencjometr znajdzie się w zakresie niższym niż 51, na ekranie z wyświetlaczem (w trybie portretowym = obrót 90) jakiś tekst.
Aby móc wyświetlić obraz, upewnij się, że twój pin SD CS jest poprawnie zdefiniowany, w przeciwnym razie arduino nie zainicjuje SD (więc upewnij się, że sprawdziłeś przewody!!)
Jeśli chcesz sprawdzić piny swojego LCD, możesz zapoznać się z oficjalnym przewodnikiem w „podłączaniu ekranu”
Zdefiniowałem teraz mój pin SD CS jako 4, ponieważ na przykład pomieszałem przewody! - Cieszę się, że mogę podzielić się tym małym oopsie, ponieważ zaoszczędzi to dużo czasu na przeszukiwaniu sieci w poszukiwaniu błędu „Nie udało się zainicjować”. Na niektórych forach mówi się, że poprawką jest posiadanie określonego modelu karty SD. Więc najpierw sprawdź okablowanie przed zakupem nowych kart SD!!
Krok 4: Przykład pełnego kodu
#włączać
#include // Biblioteka specyficzna dla sprzętu #include
#Define SD_CS 4 #Define CS 10 #Define DC 9 #Define RESET 8
const int analogInPin = A0; // Pin wejścia analogowego, do którego podłączony jest potencjometr
int sensorValue = 0; // wartość odczytana z puli int outputValue = 0; // wartość wyprowadzana do PWM (wyjście analogowe) bool rangeOne = true; wartość logiczna dwa = prawda; bool zakresTrzy = prawda; bool zakresCztery = prawda; wartość logiczna Pięć = prawda;
Moje Logo TFT = TFT(CS, DC, RESET);
Obraz obrazu; wydruk const char[9];
void setup(){ Serial.begin(9600); mojeEkran.początek(); // spróbuj uzyskać dostęp do karty SD Serial.print("Inicjowanie karty SD…"); if (!SD.begin(SD_CS)) { Serial.println("nie powiodło się!"); powrót; } Serial.println("OK!");
// zainicjuj i wyczyść ekran GLCD myScreen.begin(); mojeEkran.tło(255, 255, 255);
} void loop(){ // odczytaj wartość analogową: sensorValue = analogRead(analogInPin); // zmapuj go na zakres wyjścia analogowego: outputValue = map(sensorValue, 0, 1023, 0, 255); String stuffToPrint = String(wartośćwyjściowa); // zmiana wartości wyjścia analogowego:
stuffToPrint.toCharArray(wydruk, 9); // tekst statyczny myScreen.setTextSize(1);
Serial.print("czujnik = "); Serial.print(wartość czujnika); Serial.print("\t wyjście = "); Serial.println(wartośćwyjściowa);
opóźnienie(50);
if (outputValue to", 10, 60); myScreen.text("zdobądź zachętę.", 10, 70); rangeOne = false; } } if(outputValue > 52 && outputValue 102 && outputValue 154 && outputValue < 205){ / /zakres cztery if (zakresFour == true){ rangeThree = true; rangeFive = true; myScreen.setRotation(90); myScreen.background(255, 255, 255); // wyczyść obraz z ekranu = myScreen.loadImage("quote2.bmp"); //zapisz obraz na ekranie myScreen.image(image, 0, 0); myScreen.stroke(255, 255, 255); myScreen.text("Jestem taki dumny", 10, 50); myScreen.text("o tobie!", 10, 60); rangeFour = false; } }
if(wartośćwyjściowa > 206 &&wartośćwyjściowa