Kazalo:

Namizni organizator z LCD: 4 koraki
Namizni organizator z LCD: 4 koraki

Video: Namizni organizator z LCD: 4 koraki

Video: Namizni organizator z LCD: 4 koraki
Video: Тест каравана в -25° . Ночёвка зимой. Как не замёрзнуть? 2024, Julij
Anonim
Image
Image

** Urejanje **

Za projekt HKU arduino sem se odločil, da naredim namizni organizor z LCD zaslonom, ki prikazuje citate navdiha, ki vas bodo pobrali, ko zavrtite merilnik poti!

Večinoma bom pokrival tehnične stvari o arduinu, če imate nekaj takega kot leseno škatlo, da skrijete svoj Arduino in LCD v svojem osebnem oganisorju, bi lahko dobili poljubno obliko.

Stvari, ki jih boste potrebovali

  • *arduino uno
  • lonec meter
  • *moške zaščitne žice
  • *LCD modul! S čitalnikom kartic SD! (Imam arduino tft LCD)
  • *kartica micro SD
  • *les (recikliral sem stare mini predale in uporabil nekaj rezervnih lesenih delov, poskrbite, da boste vsaj oblikovali majhno škatlo, v katero boste skrili svoj arduino!

1. korak: Nastavitev merilnika števcev na Arduinu

Nastavitev merilnika števcev na Arduinu
Nastavitev merilnika števcev na Arduinu

priključite merilnik lonca, kot je prikazano na sliki

za začetek delovanja merilnika loncev

Pred nastavitvijo boste morali začeti z nekaj spremenljivkami na vrhu skice:

Koda:

const int analogInPin = A0; // Analogni vhodni pin, na katerega je priključen potenciometer

int sensorValue = 0; // vrednost, prebrana iz pot int outputValue = 0; // vrednostna vrednost na PWM (analogni izhod)

Na sliki 2 prikazujem, kako je merilnik poti prikazan v zanki praznine

Koda:

// preberemo analogno vrednost:

sensorValue = analogRead (analogInPin); // preslikamo v obseg analognega izhoda: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = Niz (outputValue); // spremenite vrednost analognega izhoda:

stuffToPrint.toCharArray (izpis, 9); // statično besedilo myScreen.setTextSize (1);

Serial.print ("sensor ="); Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);

zamuda (50);

ta preslika analogne podatke iz merilnika poti v obseg od 0 do 255, to območje bomo uporabili za nadzor našega diaprojekcije LCD

Če potrebujete pomoč pri nastavitvi merilnika števcev; Uporabil sem kodo iz te koristne vadnice, nožice so popolnoma enake in bodo v naslednjih korakih delovale z nastavitvijo LCD -ja.

www.toptechboy.com/arduino/lesson-11-arduin…

2. korak: Nastavitev LCD -ja

Nastavitev LCD -ja
Nastavitev LCD -ja

Nastavite zatiče kot v zgornjem primeru.

Ko pravilno opravite, bo zaslon zasvetil belo.

Če potrebujete dodatno pomoč ali želite uporabiti kakšno primerno kodo za preizkus zaslona, si lahko ogledate uradno vadnico za ta modul in njegove primere kod tukaj

v naslednjem koraku bomo delno uporabili "risanje slike s kartice SD".

3. korak: Nastavitev diaprojekcije

Nastavitev diaprojekcije
Nastavitev diaprojekcije

Zdaj, ko imamo nastavljen potmeter in LCD, lahko nastavimo "diaprojekcijo" z uporabo preslikanih vrednosti kazalnika

Z razponom od 0 do 255 lahko označimo določeno območje, v katerem lahko sprožimo arduino, da prikaže nekaj vsebine na LCD -prikazovalniku.

Prvi primer, kot je prikazano na sliki:

if (outputValue <51) {// obseg ena if (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text ("Pozdravljeni, čudovito,", 10, 50); myScreen.text ("zavrtite zatič> na", 10, 60); myScreen.text ("pridobite spodbudo.", 10, 70); rangeOne = false;

Če merilnik poti meri na območje, nižje od 51, se na zaslonu z prikazom (v pokončnem načinu = rotacija 90) prikaže nekaj besedila.

Če želite prikazati sliko, se prepričajte, da je vaš pin CS CS pravilno definiran, sicer arduino ne bo uspel inicializirati SD (zato preverite svoje žice !!)

Če želite preveriti zatiče LCD -ja, si oglejte uradni vodnik za povezovanje zaslona

Svoj SD CS pin sem zdaj definiral kot 4, ker sem na primer zmešal žice! - Z veseljem delim to malo oopsie, ker vam bo prihranilo veliko časa pri iskanju po spletu napake »Failed to initialize«. Za kar na nekaterih forumih pravijo, da je treba imeti določen model kartice SD. Zato najprej preverite ožičenje pred nakupom novih kartic SD !!

4. korak: Primer celotne kode

#vključi

#include // Strojno specifična knjižnica #include

#define SD_CS 4 #define CS 10 #define DC 9 #define RESET 8

const int analogInPin = A0; // Analogni vhodni pin, na katerega je priključen potenciometer

int sensorValue = 0; // vrednost, prebrana iz pot int outputValue = 0; // izhod vrednosti v PWM (analogni izhod) bool rangeOne = true; bool rangeTwo = true; bool rangeThree = res; bool rangeFour = true; bool rangeFive = true;

TFT myScreen = TFT (CS, DC, RESET);

Slika PImage; izpis const char [9];

void setup () {Serial.begin (9600); myScreen.begin (); // poskusite dostopati do kartice SD Serial.print ("Inicializacija kartice SD …"); if (! SD.begin (SD_CS)) {Serial.println ("neuspešno!"); vrnitev; } Serial.println ("V redu!");

// inicializiramo in počistimo zaslon GLCD myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// prebere analogno vrednost: sensorValue = analogRead (analogInPin); // preslikamo v obseg analognega izhoda: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = Niz (outputValue); // spremenite vrednost analognega izhoda:

stuffToPrint.toCharArray (izpis, 9); // statično besedilo myScreen.setTextSize (1);

Serial.print ("sensor ="); Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);

zamuda (50);

if (outputValue to ", 10, 60); myScreen.text (" dobite spodbudo. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /obseg štiri if (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // počisti sliko zaslona = myScreen.loadImage ("quote2.bmp "); // napiši sliko na zaslon myScreen.image (image, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (" Tako sem ponosen ", 10, 50); myScreen.text ("od vas!", 10, 60); rangeFour = false;}}

if (outputValue> 206 && outputValue

Priporočena: