Mundarija:

LCD bilan ish stoli tashkilotchisi: 4 qadam
LCD bilan ish stoli tashkilotchisi: 4 qadam

Video: LCD bilan ish stoli tashkilotchisi: 4 qadam

Video: LCD bilan ish stoli tashkilotchisi: 4 qadam
Video: Display input voltage as bargraph on LCD using Arduino and potentiometer 2024, Noyabr
Anonim
Image
Image

** Tahrir qilinmoqda **

HKU arduino loyihasi uchun, men potmetrni aylantirganda sizni olish uchun ilhom tirnoqlarini ko'rsatadigan LCD displeyli ish stoli tashkilotchisi yasashga qaror qildim!

Men asosan arduino texnikasini qamrab olaman, chunki sizda Arduino va LCD ni shaxsiy oganisoringizda yashirish uchun yog'och quti kabi biror narsa bo'lsa, siz xohlagan shaklga ega bo'lasiz.

Sizga kerak bo'lgan narsalar

  • *arduino bilan
  • qozon o'lchagich
  • *erkak prottiplash simlari
  • *LCD -modul, SD -kartani o'quvchi bilan! (Menda arduino tft LCD bor)
  • *micro SD karta
  • yog'och

1 -qadam: Arduino -da potmetrni o'rnatish

Arduino -da potmetrni o'rnatish
Arduino -da potmetrni o'rnatish

qozon o'lchagichni rasmda ko'rsatilgandek ulang

qozon o'lchagichni ishga tushirish uchun

O'rnatishdan oldin eskizning yuqori qismidagi ba'zi o'zgaruvchilardan boshlashingiz kerak bo'ladi:

kod:

const int analogInPin = A0; // Potentsiometr biriktirilgan analog kirish pimi

int sensorValue = 0; // potdan o'qilgan qiymat int outputValue = 0; // PWM ga qiymat chiqishi (analog chiqish)

2 -rasmda men potmetrning bo'shliq pastadiriga qanday joylashtirilganligini ko'rsataman

kod:

// analog qiymatini o'qing:

sensorValue = analogRead (analogInPin); // uni analog diapazoniga xaritaga chiqaring: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // analog chiqish qiymatini o'zgartiring:

stuffToPrint.toCharArray (chop etish, 9); // statik matn myScreen.setTextSize (1);

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

kechikish (50);

bu analog ma'lumotni potmetrdan 0 dan 255 gacha bo'lgan diapazonga moslashtiradi, biz bu diapazonni LCD displeyni boshqarish uchun ishlatamiz.

Agar sizga potmetrni o'rnatishda yordam kerak bo'lsa; Men ushbu foydali qo'llanmadan kodni ishlatganman, pinlar bir xil va keyingi bosqichlarda LCD sozlamalari bilan ishlaydi.

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

2 -qadam: LCD -ni sozlash

LCD displeyni sozlash
LCD displeyni sozlash

Pimlarni yuqoridagi misolda bo'lgani kabi o'rnating.

To'g'ri bajarilganda, ekran oq rangda yonadi.

Agar sizga qo'shimcha yordam kerak bo'lsa yoki displeyingizni sinab ko'rish uchun misol kodidan foydalanmoqchi bo'lsangiz, ushbu modul uchun rasmiy qo'llanmani ko'rishingiz mumkin va uning kod misollari bu erda

biz keyingi bosqichda "SD kartadan rasm chizish" dan qisman foydalanamiz.

3 -qadam: Slayd -shouni sozlash

Slayd -shouni sozlash
Slayd -shouni sozlash

Endi bizda Potmetr va LCD o'rnatilgan bo'lsa, biz potmeterning xaritali qiymatlari yordamida "slayd -shou" ni sozlashimiz mumkin.

0 dan 255 gacha bo'lgan diapazondan foydalanib, biz ma'lum bir diapazonni ko'rsatishimiz mumkin, bunda biz arduino -ni LCD -da qandaydir tarkibni ko'rsatish uchun ishga tushiramiz.

Rasmda ko'rsatilgandek birinchi misol:

if (outputValue <51) {// bitta diapazon, agar (rangeOne == rost) {intervalTwo = rost; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text ("Salom, ajoyib!", 10, 50); myScreen.text ("pinni> ga burish", 10, 60); myScreen.text ("dalda ol.", 10, 70); rangeOne = noto'g'ri;

Agar potmetr 51dan past diapazonga o'tsa, displeyli ekran (portret rejimida = aylanish 90) ba'zi matn.

Rasmni ko'rsatish uchun SD CS pinining to'g'ri aniqlanganligiga ishonch hosil qiling yoki arduino SD -ni ishga tushira olmaydi (shuning uchun simlaringizni tekshirib ko'ring !!)

Agar siz LCD displeylarini tekshirmoqchi bo'lsangiz, "ekranni ulash" rasmiy qo'llanmasiga murojaat qilishingiz mumkin

Men SD CS pinimni hozir 4 deb aniqladim, chunki men simlarimni aralashtirdim! - Men bu kichik voqeani baham ko'rishdan xursandman, chunki bu sizni Internetda "ishga tushirilmadi" xatosini qidirishda ko'p vaqtingizni tejaydi. Ba'zi forumlarda ma'lum bir SD -karta modelini tuzatish kerakligi aytilgan. Shunday qilib, yangi SD -kartalarni sotib olishdan oldin, simingizni tekshiring !!

4 -qadam: To'liq kod misoli

#qo'shing

#include // Uskuna uchun maxsus kutubxona #include

#SD_CS 4 ni belgilang #CS 10ni aniqlang #DC 9ni aniqlang #RESET 8 ni aniqlang

const int analogInPin = A0; // Potentsiometr biriktirilgan analog kirish pimi

int sensorValue = 0; // potdan o'qilgan qiymat int outputValue = 0; // qiymatni PWM ga chiqarish (analog chiqish) bool rangeOne = true; bool rangeTwo = rost; bool rangeThree = haqiqiy; bool rangeFour = true; bool rangeFive = rost;

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

PI tasviri; const char chop etish [9];

void setup () {Serial.begin (9600); myScreen.begin (); // Serial.print SD -kartasiga kirishga harakat qiling ("SD -karta ishga tushirilmoqda …"); if (! SD.begin (SD_CS)) {Serial.println ("muvaffaqiyatsiz!"); qaytish; } Serial.println ("OK!");

// GLCD ekranini ishga tushirish va tozalash myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// analog qiymatini o'qing: sensorValue = analogRead (analogInPin); // uni analog diapazoniga xaritaga chiqaring: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // analog chiqish qiymatini o'zgartiring:

stuffToPrint.toCharArray (chop etish, 9); // statik matn myScreen.setTextSize (1);

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

kechikish (50);

if (outputValue ", 10, 60); myScreen.text (" rag'batlantirish. ", 10, 70); rangeOne = false;}} if (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /diapazon to'rt bo'lsa, (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // ekran tasvirini tozalash = myScreen.loadImage ("quote2.bmp "); // tasvirni ekranga yozing; myScreen.text ("sizdan!", 10, 60); rangeFour = false;}}

if (outputValue> 206 && outputValue

Tavsiya: