Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
** Upravuje sa **
Pre projekt HKU arduino som sa rozhodol vytvoriť stolný organizér s LCD obrazovkou, ktorá zobrazuje citácie inšpirácie, aby vás vyzdvihla pri otáčaní potenciometra!
Budem sa zaoberať predovšetkým technickými vecami arduino, pokiaľ máte niečo ako drevenú škatuľu, ktorá skryje váš Arduino a LCD vo vašom osobnom organizátore, môže mať akúkoľvek žiaducu formu.
Veci, ktoré budete potrebovať
- *arduino uno
- hrncový meter
- *mužské vyčnievajúce drôty
- *LCD modul! S čítačkou kariet SD! (Mám arduino tft LCD)
- *karta micro SD
- *drevo (zrecykloval som staré mini zásuvky a použil som nejaké náhradné drevené diely, uistite sa, že dokážete vytvoriť aspoň malú škatuľu, do ktorej skryjete arduino!
Krok 1: Nastavenie potmetra na Arduine
zapojte počítadlo hrncov podľa obrázku
aby mohol začať fungovať hrniec
Pred nastavením budete musieť začať s niektorými premennými v hornej časti náčrtu:
kód:
const int analogInPin = A0; // Analógový vstupný kolík, ku ktorému je pripojený potenciometer
int sensorValue = 0; // hodnota čítaná z pot int intValue = 0; // výstup hodnoty do PWM (analógový výstup)
Na obrázku 2 ukazujem, ako je potmeter mapovaný v prázdnej slučke
kód:
// prečítajte analóg v hodnote:
sensorValue = analogRead (analogInPin); // namapujte ho na rozsah analógového výstupu: outputValue = mapa (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // zmena hodnoty analógového výstupu:
stuffToPrint.toCharArray (výtlačok, 9); // statický text myScreen.setTextSize (1);
Serial.print ("senzor ="); Serial.print (sensorValue); Serial.print ("\ t výstup ="); Serial.println (outputValue);
oneskorenie (50);
toto mapuje analógové údaje z potmetra do rozsahu 0 až 255, tento rozsah použijeme na ovládanie našej LCD prezentácie
Ak potrebujete pomoc s nastavením potmetra; Použil som kód z tohto užitočného tutoriálu, kolíky sú úplne rovnaké a v nasledujúcich krokoch budú fungovať s nastavením LCD.
www.toptechboy.com/arduino/lesson-11-arduin…
Krok 2: Nastavenie LCD displeja
Nastavte kolíky ako v príklade vyššie.
Keď to urobíte správne, obrazovka sa rozsvieti nabielo.
Ak potrebujete ďalšiu pomoc alebo chcete použiť nejaký ukážkový kód na testovanie svojho displeja, môžete si pozrieť oficiálny návod pre tento modul a príklady jeho kódov tu
v ďalšom kroku čiastočne použijeme „kresbu obrázka z karty SD“.
Krok 3: Nastavenie prezentácie
Teraz, keď máme nastavený potmeter a LCD, môžeme nastaviť „prezentáciu“pomocou namapovaných hodnôt potmetra
Pomocou rozsahu 0 až 255 môžeme označiť určitý rozsah, v ktorom môžeme arduino spustiť, aby na LCD zobrazil nejaký obsah.
Prvý príklad, ako je znázornené na obrázku:
if (outputValue <51) {// rozsah jedna if (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text („Ahoj, úžasné“, 10, 50); myScreen.text ("otočiť čapom> na", 10, 60); myScreen.text („získajte povzbudenie.“, 10, 70); rangeOne = false;
Ak sa potmeter zmení na rozsah nižší ako 51, na obrazovku so zobrazením (v režime na výšku = otočenie 90) príde nejaký text.
Aby ste mohli zobraziť obrázok, uistite sa, že je váš PIN CS CS správne definovaný, alebo sa Arduinu nezdaří inicializácia SD (skontrolujte preto svoje káble !!)
Ak chcete skontrolovať kolíky LCD, pozrite si oficiálneho sprievodcu „Pripojenie obrazovky“https://www.arduino.cc/en/Guide/TFT
Teraz som definoval svoj kolík SD CS ako 4, pretože som napríklad zamieňal svoje káble! - S potešením sa môžem podeliť o tohto malého oopsieho, pretože vám to ušetrí veľa času hľadaním chyby „Nepodarilo sa inicializovať“na webe. Na ktoré sa na niektorých fórach hovorí, že opravou je mať určitý model karty SD. Pred kúpou nových SD kariet preto najskôr skontrolujte svoje zapojenie !!
Krok 4: Príklad úplného kódu
#zahrnúť
#include // Knižnica špecifická pre hardvér #include
#define SD_CS 4 #define CS 10 #define DC 9 #define RESET 8
const int analogInPin = A0; // Analógový vstupný kolík, ku ktorému je pripojený potenciometer
int sensorValue = 0; // hodnota čítaná z pot int intValue = 0; // výstup hodnoty do boolového rozsahu PWM (analógový výstup) One = true; rozsah boolTwo = true; bool rangeThree = true; bool rangeFour = true; rozsah boolPäť = true;
TFT myScreen = TFT (CS, DC, RESET);
PImage obrázok; výtlačok konštantného znaku [9];
void setup () {Serial.begin (9600); myScreen.begin (); // skúste získať prístup na kartu SD Serial.print („Inicializácia karty SD …“); if (! SD.begin (SD_CS)) {Serial.println ("zlyhalo!"); návrat; } Serial.println („OK!“);
// inicializácia a vymazanie obrazovky GLCD myScreen.begin (); myScreen.background (255, 255, 255);
} void loop () {// prečítanie hodnoty analógu: sensorValue = analogRead (analogInPin); // namapujte ho na rozsah analógového výstupu: outputValue = mapa (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // zmena hodnoty analógového výstupu:
stuffToPrint.toCharArray (výtlačok, 9); // statický text myScreen.setTextSize (1);
Serial.print ("senzor ="); Serial.print (sensorValue); Serial.print ("\ t výstup ="); Serial.println (outputValue);
oneskorenie (50);
if (outputValue to ", 10, 60); myScreen.text (" get povzbudenie. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /range four if (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // clear the screen image = myScreen.loadImage ("quote2.bmp "); // napíšte obrázok na obrazovku myScreen.image (obrázok, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text („ Som taký hrdý “, 10, 50); myScreen.text („z vás!“, 10, 60); rangeFour = false;}}
if (outputValue> 206 && outputValue