Obsah:

Stolný organizér s LCD: 4 kroky
Stolný organizér s LCD: 4 kroky

Video: Stolný organizér s LCD: 4 kroky

Video: Stolný organizér s LCD: 4 kroky
Video: Радиоприёмник Retekess TR629 - Новинка для Дома 2024, Júl
Anonim
Image
Image

** 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

Nastavenie potmetra na Arduino
Nastavenie potmetra na Arduino

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

Inštalácia LCD
Inštalácia LCD

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

Nastavenie prezentácie
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

Odporúča: