Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
** U toku je uređivanje **
Za HKU arduino projekt odlučio sam napraviti stolni organizator sa LCD ekranom koji prikazuje citate inspiracije koji će vas pokupiti kada okrećete mjerač napona!
Pokrivat ću uglavnom arduino tehničke stvari, sve dok imate nešto poput drvene kutije za sakrivanje vašeg Arduina i LCD -a u vašem ličnom oganisoru koji može poprimiti bilo koji željeni oblik.
Stvari koje će vam trebati
- *arduino uno
- merač lonca
- *muške zaštitne žice
- *LCD modul! Sa čitačem SD kartica! (Imam arduino tft LCD)
- *mikro SD kartica
- *drvo (Reciklirao sam stare mini ladice i upotrijebio neke rezervne drvene dijelove, pobrinite se da barem napravite malu kutiju u koju ćete sakriti svoj arduino!
Korak 1: Postavljanje mjerača udaljenosti na Arduinu
priključite mjerač lonca kao što je prikazano na slici
kako bi mjerač lonaca počeo raditi
Prije postavljanja morate početi s nekim varijablama na vrhu skice:
kod:
const int analogInPin = A0; // Analogni ulazni pin na koji je potenciometar priključen
int sensorValue = 0; // vrijednost pročitana iz pot int outputValue = 0; // izlaz vrijednosti na PWM (analogni izlaz)
Na slici 2 pokazujem kako se mjerač puta preslikava u praznu petlju
kod:
// čita analognu vrijednost:
sensorValue = analogRead (analogInPin); // preslikavamo ga u raspon analognog izlaza: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // mijenjamo vrijednost analognog izlaza:
stuffToPrint.toCharArray (ispis, 9); // statički tekst myScreen.setTextSize (1);
Serial.print ("sensor ="); Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
kašnjenje (50);
ovo preslikava analogne podatke s mjerača udaljenosti u raspon od 0 do 255, koristit ćemo ovaj raspon za kontrolu našeg LCD projekcije slajdova
Ako vam je potrebna pomoć pri postavljanju mjerača tlaka; Koristio sam kôd iz ovog korisnog vodiča, pinovi su potpuno isti i radit će s LCD postavkom u sljedećim koracima.
www.toptechboy.com/arduino/lesson-11-arduin…
Korak 2: Postavljanje LCD -a
Postavite pinove kao u gornjem primjeru.
Kada se pravilno uradi, ekran će zasvijetliti bijelo.
Ako vam je potrebna dodatna pomoć ili želite upotrijebiti neki primjer koda za testiranje prikaza, možete vidjeti službeni vodič za ovaj modul, a njegove primjere koda možete pronaći ovdje
djelomično ćemo koristiti "crtanje slike sa SD kartice" u sljedećem koraku.
Korak 3: Postavljanje projekcije slajdova
Sada kada smo postavili Potmeter i LCD, možemo postaviti "slideshow" koristeći mapirane vrijednosti potmetra
Koristeći raspon od 0 do 255 možemo označiti određeni raspon u kojem možemo pokrenuti arduino da prikaže neki sadržaj na LCD -u.
Prvi primjer prikazan na slici:
if (outputValue <51) {// raspon jedan if (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text ("Zdravo, divno,", 10, 50); myScreen.text ("rotirajte pin> na", 10, 60); myScreen.text ("primite ohrabrenje.", 10, 70); rangeOne = false;
Ako se mjerač okreće na raspon manji od 51, na ekranu s prikazom (u portretnom načinu = rotacija 90) neki tekst.
Da biste mogli prikazati sliku, provjerite je li vaš SD CS pin pravilno definiran, jer arduino neće uspjeti pokrenuti SD (stoga provjerite svoje žice !!)
Ako želite provjeriti pinove vašeg LCD -a, možete se obratiti službenom vodiču za povezivanje ekrana
Sada sam definirao svoj SD CS pin kao 4 jer sam, na primjer, pomiješao svoje žice! - Drago mi je što mogu podijeliti tu malu oopsie jer će vam uštedjeti mnogo vremena na pretraživanju weba za greškom "Failed to initialize". Za koje se na nekim forumima kaže da je rješenje to što imate određeni model SD kartice. Zato prije kupnje novih SD kartica provjerite ožičenje !!
Korak 4: Primjer potpunog koda
#include
#include // Hardverska biblioteka #include
#define SD_CS 4 #define CS 10 #define DC 9 #define RESET 8
const int analogInPin = A0; // Analogni ulazni pin na koji je potenciometar priključen
int sensorValue = 0; // vrijednost pročitana iz pot int outputValue = 0; // izlaz vrijednosti na PWM (analogni izlaz) bool rangeOne = true; bool rangeTwo = true; bool rangeThree = true; bool rangeFour = true; bool rangeFive = true;
TFT myScreen = TFT (CS, DC, RESET);
PImage image; ispis const char [9];
void setup () {Serial.begin (9600); myScreen.begin (); // pokušajte pristupiti SD kartici Serial.print ("Inicijalizacija SD kartice …"); if (! SD.begin (SD_CS)) {Serial.println ("nije uspjelo!"); return; } Serial.println ("U redu!");
// inicijaliziranje i brisanje GLCD ekrana myScreen.begin (); myScreen.background (255, 255, 255);
} void loop () {// čita analognu vrijednost: sensorValue = analogRead (analogInPin); // preslikavamo ga u raspon analognog izlaza: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // mijenjamo vrijednost analognog izlaza:
stuffToPrint.toCharArray (ispis, 9); // statički tekst myScreen.setTextSize (1);
Serial.print ("sensor ="); Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
kašnjenje (50);
if (outputValue to ", 10, 60); myScreen.text (" get ohrabrenje. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /raspon četiri if (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // očisti sliku ekrana = myScreen.loadImage ("quote2.bmp "); // zapišite sliku na ekran myScreen.image (image, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (" Tako sam ponosan ", 10, 50); myScreen.text ("od vas!", 10, 60); rangeFour = false;}}
if (outputValue> 206 && outputValue