Innholdsfortegnelse:

Desktop Organizer Med LCD: 4 trinn
Desktop Organizer Med LCD: 4 trinn

Video: Desktop Organizer Med LCD: 4 trinn

Video: Desktop Organizer Med LCD: 4 trinn
Video: Такие секреты уже все забыли, но их стоит знать! Полезные советы на все случаи жизни! 2024, November
Anonim
Image
Image

** Blir redigert **

For HKU arduino -prosjektet bestemte jeg meg for å lage en stasjonær organisator med LCD -skjerm som viser inspirasjonstilbud for å hente deg når du roterer potmeteret ditt!

Jeg vil for det meste dekke de tekniske tingene, så lenge du har noe som en trekasse for å skjule din Arduino og LCD -skjermen i din personlige oganisor kan ha en ønsket form.

Tingene du trenger

  • *arduino uno
  • gryte måler
  • *mannlige prottyping -ledninger
  • *LCD -modul! Med SD -kortleser! (Jeg har arduino tft LCD)
  • *micro SD -kort
  • *tre (jeg resirkulerte gamle miniskuffer og brukte noen reservedeler av tre, sørg for at du i det minste kan danne en liten eske for å gjemme arduinoen din i!

Trinn 1: Konfigurere Potmeter på Arduino

Sette opp Potmeter på Arduino
Sette opp Potmeter på Arduino

koble til grytemåleren som vist på bildet

for å få grytemåleren i gang

Du må starte med noen variabler på toppen av skissen før oppsettet:

kode:

const int analogInPin = A0; // Analog inngangspinne som potensiometeret er festet til

int sensorValue = 0; // verdi lest fra potten int outputValue = 0; // verdiutgang til PWM (analog ut)

På bilde 2 viser jeg hvordan potmeteret er kartlagt i hulrommet

kode:

// les analogen i verdi:

sensorValue = analogRead (analogInPin); // tilordne den til analog utgang: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // endre verdien for analog utgang:

stuffToPrint.toCharArray (utskrift, 9); // statisk tekst myScreen.setTextSize (1);

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

forsinkelse (50);

dette kartlegger de analoge dataene fra potmeteret til et område på 0 til 255, vi bruker dette området til å kontrollere LCD -lysbildeserien vår

Hvis du trenger hjelp til å sette opp potmeteret; Jeg brukte koden fra denne nyttige opplæringen, pinnene er nøyaktig de samme og vil fungere med LCD -oppsettet i de neste trinnene.

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

Trinn 2: Sette opp LCD -skjermen

Sette opp LCD -skjermen
Sette opp LCD -skjermen

Sett opp pinnene som i eksemplet ovenfor.

Når du gjør det riktig, vil skjermen lyse hvit.

Hvis du trenger ekstra hjelp eller vil bruke en eksempelkode til å teste skjermen, kan du se den offisielle opplæringen for denne modulen og kodeeksempler her

vi vil delvis bruke "tegne bildet fra SD -kort" i neste trinn.

Trinn 3: Konfigurere lysbildeserien

Sette opp lysbildefremvisningen
Sette opp lysbildefremvisningen

Nå som vi har satt opp Potmeter og LCD kan vi sette opp en "lysbildefremvisning" ved bruk av potmeterens kartlagte verdier

Ved å bruke området 0 til 255 kan vi indikere et bestemt område der vi kan aktivere arduinoen til å vise noe innhold på LCD -skjermen.

Første eksempel som vist på bildet:

if (outputValue <51) {// range one if (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text ("Hei det fantastiske", 10, 50); myScreen.text ("roter pinnen> til", 10, 60); myScreen.text ("få oppmuntring.", 10, 70); rangeOne = false;

Hvis potmeteret går til et område som er lavere enn 51, vil skjermen med display (i stående modus = rotatio 90) noe tekst.

For å kunne vise et bilde må du kontrollere at SD CS -pinnen er definert riktig, ellers kan arduinoen ikke initialisere SD -en (så sørg for å sjekke ledningene dine!)

Hvis du vil sjekke pinnene på LCD -skjermen, kan du se den offisielle guiden for å "koble til skjermen"

Jeg definerte SD CS -pinnen min som 4 nå fordi jeg blandet sammen ledningene mine, for eksempel! - Jeg er glad for å dele den lille oopsien fordi den vil spare deg for mye tid på å lete etter feilen "Klarte ikke å initialisere" på nettet. Til hvilke på noen fora det er sagt at løsningen er å ha en bestemt modell av SD -kort. Så sjekk ledningene før du kjøper nye SD -kort !!

Trinn 4: Eksempel på full kode

#inkludere

#include // Maskinvarespesifikt bibliotek #include

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

const int analogInPin = A0; // Analog inngangspinne som potensiometeret er festet til

int sensorValue = 0; // verdi lest fra potten int outputValue = 0; // verdiutgang til PWM (analog ut) bool rangeOne = true; bool rangeTwo = true; bool rangeThree = true; bool rangeFour = true; bool rangeFive = true;

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

Bildebilde; const char utskrift [9];

ugyldig oppsett () {Serial.begin (9600); myScreen.begin (); // prøv å få tilgang til SD -kortet Serial.print ("Initialiserer SD -kort …"); hvis (! SD.begin (SD_CS)) {Serial.println ("mislyktes!"); komme tilbake; } Serial.println ("OK!");

// initialiser og fjern GLCD -skjermen myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// les analog i verdi: sensorValue = analogRead (analogInPin); // tilordne den til analog utgang: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // endre verdien for analog utgang:

stuffToPrint.toCharArray (utskrift, 9); // statisk tekst myScreen.setTextSize (1);

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

forsinkelse (50);

if (outputValue til ", 10, 60); myScreen.text (" get encouragement. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /område fire hvis (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // tøm skjermbildet = myScreen.loadImage ("quote2.bmp "); // skrive bildet på skjermen myScreen.image (image, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (" Jeg er så stolt ", 10, 50); myScreen.text ("av deg!", 10, 60); rangeFour = false;}}

if (outputValue> 206 && outputValue

Anbefalt: