Innehållsförteckning:

Desktop Organizer Med LCD: 4 steg
Desktop Organizer Med LCD: 4 steg

Video: Desktop Organizer Med LCD: 4 steg

Video: Desktop Organizer Med LCD: 4 steg
Video: Правила работы с микроскопом / Как настроить / Инструкция 2024, November
Anonim
Image
Image

** Redigeras **

För HKU arduino -projektet bestämde jag mig för att göra en stationär organisator med LCD -skärm som visar inspirationscitat för att hämta dig när du roterar din potmeter!

Jag kommer att täcka de arduino tekniska sakerna mestadels, så länge du har något som en trälåda för att dölja din Arduino och LCD i din personliga oganisor kan anta vilken önskvärd form som helst.

De saker du behöver

  • *arduino uno
  • grytmätare
  • *manliga prottyping -trådar
  • *LCD -modul! Med SD -kortläsare! (Jag har arduino tft LCD)
  • *micro SD -kort
  • *trä (jag återvände gamla minilådor och använde några reservdelar av trä, se till att du åtminstone kan bilda en liten låda att gömma din arduino i!

Steg 1: Konfigurera Potmeter på Arduino

Installera potmeter på Arduino
Installera potmeter på Arduino

anslut din grytmätare enligt bilden

för att få pottmätaren att fungera

Du måste börja med några variabler högst upp på din skiss innan installationen:

koda:

const int analogInPin = A0; // Analog ingångsstift som potentiometern är ansluten till

int sensorValue = 0; // värde läst från potten int outputValue = 0; // värdeutgång till PWM (analog ut)

På bild 2 visar jag hur potmeteret mappas i tomrumsslingan

koda:

// läs analogt i värde:

sensorValue = analogRead (analogInPin); // mappa det till intervallet för den analoga utgången: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // ändra det analoga utvärdet:

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

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

fördröjning (50);

detta kartlägger de analoga data från potmeter till ett intervall från 0 till 255, vi använder detta område för att styra vårt LCD -bildspel

Om du behöver hjälp med att ställa in potmeter; Jag använde koden från denna praktiska handledning, stiften är exakt samma och fungerar med LCD -inställningen i nästa steg.

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

Steg 2: Installera LCD -skärmen

Installera LCD -skärmen
Installera LCD -skärmen

Ställ in stiften som i exemplet ovan.

När du gör det korrekt tänds skärmen vitt.

Om du behöver extra hjälp eller vill använda någon exempelkod för att testa din bildskärm kan du se den officiella självstudien för denna modul och dess kodexempel här

vi kommer delvis att använda "rita bilden från SD -kort" i nästa steg.

Steg 3: Konfigurera bildspelet

Inställning av bildspel
Inställning av bildspel

Nu när vi har ställt in Potmeter och LCD kan vi skapa ett "bildspel" med hjälp av potmeterns kartlagda värden

Med intervallet 0 till 255 kan vi ange ett visst intervall där vi kan aktivera arduino för att visa lite innehåll på LCD -skärmen.

Första exemplet som visas på bilden:

if (outputValue <51) {// intervall ett om (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text ("Hej underbara", 10, 50); myScreen.text ("rotera stiftet> till", 10, 60); myScreen.text ("få uppmuntran.", 10, 70); rangeOne = false;

Om pulsmätaren vänder sig till ett område som är lägre än 51, kommer skärmen med display (i porträttläge = rotatio 90) lite text.

För att kunna visa en bild, se till att din SD CS -stift är korrekt definierad, annars kan arduino inte initiera SD (så se till att kontrollera dina ledningar !!)

Om du vill kontrollera LCD -skärmens stift kan du hänvisa till den officiella guiden för att "ansluta skärmen"

Jag definierade min SD CS -pin som 4 nu eftersom jag blandade ihop mina ledningar, till exempel! - Jag är glad att dela den lilla oopsie eftersom det kommer att spara dig mycket tid att söka på webben efter "Misslyckades med att initiera" -felet. Till vilket det på vissa forum sägs att fixen är att ha en viss modell av SD -kort. Så kontrollera din ledning först innan du köper nya SD -kort !!

Steg 4: Exempel på fullständig kod

#omfatta

#include // Hårdvaruspecifikt bibliotek #include

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

const int analogInPin = A0; // Analog ingångsstift som potentiometern är ansluten till

int sensorValue = 0; // värde läst från potten int outputValue = 0; // värdeutmatning till PWM (analog ut) bool rangeOne = true; bool rangeTwo = true; bool rangeThree = true; bool rangeFour = true; bool rangeFive = true;

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

Bildbild; const char utskrift [9];

void setup () {Serial.begin (9600); myScreen.begin (); // försök komma åt SD -kortet Serial.print ("Initierar SD -kort …"); om (! SD.begin (SD_CS)) {Serial.println ("misslyckades!"); lämna tillbaka; } Serial.println ("OK!");

// initiera och rensa GLCD -skärmen myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// läs analog i värde: sensorValue = analogRead (analogInPin); // mappa den till intervallet för den analoga utgången: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // ändra det analoga utvärdet:

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

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

fördröjning (50);

if (outputValue till ", 10, 60); myScreen.text (" få uppmuntran. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /intervall fyra om (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // rensa skärmbilden = myScreen.loadImage ("quote2.bmp "); // skriva bilden på skärmen myScreen.image (bild, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (" Jag är så stolt ", 10, 50); myScreen.text ("av dig!", 10, 60); rangeFour = false;}}

if (outputValue> 206 && outputValue

Rekommenderad: