Turinys:

Stalinio kompiuterio organizatorius su LCD: 4 žingsniai
Stalinio kompiuterio organizatorius su LCD: 4 žingsniai

Video: Stalinio kompiuterio organizatorius su LCD: 4 žingsniai

Video: Stalinio kompiuterio organizatorius su LCD: 4 žingsniai
Video: APPLE VISION PRO 2, PLAYSTATION PORTAL, STEAM DECK OLED IR BLACK FRIDAY! Tech Naujienos 19/11. 2024, Liepa
Anonim
Image
Image

** Redaguojama **

Projektui „HKU arduino“nusprendžiau sukurti darbalaukio organizatorių su LCD ekranu, kuriame rodomos įkvėpimo citatos, kad pasiimtų jus, kai pasukate puodų matuoklį!

Daugiausia aptarsiu „arduino“techninius dalykus, jei tik turėsite kažką panašaus į medinę dėžę, kad paslėptumėte „Arduino“ir LCD ekraną asmeniniame oganizatoriuje.

Dalykai, kurių jums prireiks

  • *arduino uno
  • puodo matuoklis
  • *vyriški laidai
  • *LCD modulis! Su SD kortelių skaitytuvu! (Turiu arduino tft LCD)
  • *„micro SD“kortelė
  • *mediena (perdirbau senus mini stalčius ir naudoju kai kurias atsargines medines dalis, įsitikinkite, kad galite bent suformuoti mažą dėžutę, kurioje paslėpsite savo arduino!

1 žingsnis: nustatykite potmetrą „Arduino“

Potmetro nustatymas „Arduino“
Potmetro nustatymas „Arduino“

prijunkite puodų matuoklį, kaip parodyta paveikslėlyje

kad puodo matuoklis pradėtų veikti

Prieš sąranką turėsite pradėti nuo kai kurių kintamųjų eskizo viršuje:

kodas:

const int analogInPin = A0; // Analoginis įvesties kaištis, prie kurio prijungtas potenciometras

int sensorValue = 0; // vertė, nuskaityta iš puodo int outputValue = 0; // vertės išvestis į PWM (analoginė išvestis)

2 paveiksle parodau, kaip potmetras yra susietas su tuštumos kilpa

kodas:

// skaityti analoginį vertę:

sensorValue = analogRead (analogInPin); // susieti jį su analoginio išėjimo diapazonu: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = Styga (outputValue); // pakeisti analoginę išvesties vertę:

stuffToPrint.toCharArray (spaudinys, 9); // statinis tekstas myScreen.setTextSize (1);

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

vėlavimas (50);

tai priskiria analoginius duomenis nuo potmetro iki diapazono nuo 0 iki 255, mes naudosime šį diapazoną, norėdami valdyti LCD skaidrių demonstraciją

Jei jums reikia pagalbos nustatant puodų matuoklį; Aš naudoju kodą iš šios naudingos pamokos, smeigtukai yra lygiai tokie patys ir atliks tolesnius veiksmus su LCD sąranka.

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

2 veiksmas: LCD ekrano nustatymas

LCD ekrano nustatymas
LCD ekrano nustatymas

Nustatykite kaiščius, kaip parodyta aukščiau esančiame pavyzdyje.

Kai viskas bus padaryta teisingai, ekranas bus baltas.

Jei jums reikia papildomos pagalbos arba norite naudoti tam tikrą kodo pavyzdį, norėdami išbandyti savo ekraną, galite pamatyti oficialią šio modulio mokymo programą ir jo kodo pavyzdžius čia

kitame veiksme iš dalies naudosime „piešimo vaizdą iš SD kortelės“.

3 žingsnis: nustatykite skaidrių demonstraciją

Skaidrių demonstravimo nustatymas
Skaidrių demonstravimo nustatymas

Dabar, kai nustatome potmetrą ir skystųjų kristalų ekraną, galime nustatyti „skaidrių demonstraciją“naudodami potmetro susietas vertes

Naudodami diapazoną nuo 0 iki 255, galime nurodyti tam tikrą diapazoną, kuriame galime suaktyvinti arduino rodyti tam tikrą turinį LCD ekrane.

Pirmasis pavyzdys, kaip parodyta paveikslėlyje:

if (outputValue <51) {// diapazonas vienas if (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.troke (255, 255, 255); myScreen.text („Sveiki, nuostabu“, 10, 50); myScreen.text ("pasukti kaištį> į", 10, 60); myScreen.text („gauti paskatinimą“, 10, 70); rangeOne = klaidinga;

Jei potmetras pasisuka į mažesnį diapazoną nei 51, ekrane su ekranu (portreto režimu = 90 pasukimas) yra tam tikras tekstas.

Kad galėtumėte rodyti vaizdą, įsitikinkite, kad jūsų SD CS kaištis yra teisingai apibrėžtas, kitaip „arduino“nepavyks inicijuoti SD (todėl būtinai patikrinkite laidus !!)

Jei norite patikrinti savo LCD kaiščius, skaitykite oficialų vadovą, skirtą „prijungti ekraną“https://www.arduino.cc/en/Guide/TFT

Aš dabar apibrėžiau savo SD CS kaištį kaip 4, nes, pavyzdžiui, sumaišiau laidus! - Džiaugiuosi galėdamas pasidalinti tuo mažu apmaudu, nes tai padės sutaupyti daug laiko ieškant žiniatinklyje klaidos „Nepavyko inicijuoti“. Kai kuriuose forumuose sakoma, kad pataisymas yra tam tikro SD kortelės modelio. Taigi prieš pirkdami naujas SD korteles pirmiausia patikrinkite laidus !!

4 žingsnis: viso kodo pavyzdys

#įtraukti

#include // Techninės įrangos biblioteka #include

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

const int analogInPin = A0; // Analoginis įvesties kaištis, prie kurio prijungtas potenciometras

int sensorValue = 0; // vertė, nuskaityta iš puodo int outputValue = 0; // vertės išvestis į PWM (analoginė išvestis) bool rangeOne = true; bool rangeTwo = tiesa; bool rangeThree = tiesa; bool rangeFour = true; bool rangeFive = tiesa;

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

PImage vaizdas; const char spaudinys [9];

void setup () {Serial.begin (9600); myScreen.begin (); // pabandykite pasiekti SD kortelę Serial.print ("Inicijuojama SD kortelė …"); if (! SD.begin (SD_CS)) {Serial.println ("nepavyko!"); grįžti; } Serial.println ("Gerai!");

// inicijuoti ir išvalyti GLCD ekraną myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// skaitykite analogą pagal reikšmę: sensorValue = analogRead (analogInPin); // susieti jį su analoginio išėjimo diapazonu: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = Styga (outputValue); // pakeisti analoginę išvesties vertę:

stuffToPrint.toCharArray (spaudinys, 9); // statinis tekstas myScreen.setTextSize (1);

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

vėlavimas (50);

if (outputValue to ", 10, 60); myScreen.text (" gauti paskatinimą. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /diapazonas keturi, jei (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // išvalyti ekrano vaizdą = myScreen.loadImage ("quote2.bmp "); // įrašykite vaizdą ekrane myScreen.image (vaizdas, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (" Aš toks didžiuojuosi ", 10, 50); myScreen.text ("of you!", 10, 60); rangeFour = false;}}

if (outputValue> 206 && outputValue

Rekomenduojamas: