Satura rādītājs:

Darbvirsmas organizators ar LCD: 4 soļi
Darbvirsmas organizators ar LCD: 4 soļi

Video: Darbvirsmas organizators ar LCD: 4 soļi

Video: Darbvirsmas organizators ar LCD: 4 soļi
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #4 2024, Novembris
Anonim
Image
Image

** Tiek rediģēts **

HKU arduino projektam es nolēmu izveidot galddatoru organizatoru ar LCD ekrānu, kas parāda iedvesmas citātus, lai jūs paņemtu, kad jūs pagriežat savu mērītāju!

Es pārsvarā aplūkošu arduino tehniskās lietas, ja vien jums ir kaut kas līdzīgs koka kastē, lai paslēptu savu Arduino un LCD savā personīgajā oganizatorā, tas varētu iegūt jebkuru vēlamo formu.

Lietas, kas jums būs nepieciešamas

  • *arduino uno
  • katlu skaitītājs
  • *vīriešu vadi
  • *LCD modulis! Ar SD karšu lasītāju! (Man ir arduino tft LCD)
  • *micro SD karte
  • *koks (es pārstrādāju vecās mini atvilktnes un izmantoju dažas rezerves koka detaļas, pārliecinieties, ka varat vismaz izveidot nelielu kastīti, kurā paslēpt savu arduino!

1. darbība: Potmetra iestatīšana Arduino

Potmetra iestatīšana Arduino
Potmetra iestatīšana Arduino

pievienojiet katla mērītāju, kā parādīts attēlā

lai katla skaitītājs sāktu darbu

Pirms iestatīšanas jums jāsāk ar dažiem mainīgajiem skices augšdaļā:

kods:

const int analogInPin = A0; // Analogās ievades tapa, kurai pievienots potenciometrs

int sensorValue = 0; // vērtība, kas nolasīta no katla int outputValue = 0; // vērtības izvade PWM (analogā izeja)

2. attēlā es parādīju, kā potmetrs tiek kartēts tukšuma cilpā

kods:

// lasīt analoga vērtību:

sensorValue = analogRead (analogInPin); // kartējiet to līdz analogās izejas diapazonam: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // mainīt analogo izejas vērtību:

stuffToPrint.toCharArray (izdruka, 9); // statiskais teksts myScreen.setTextSize (1);

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

kavēšanās (50);

tas kartē analogos datus no potmetra līdz diapazonam no 0 līdz 255, mēs izmantosim šo diapazonu, lai kontrolētu mūsu LCD slaidrādi

Ja jums nepieciešama palīdzība, uzstādot potmetru; Es izmantoju kodu no šīs noderīgās apmācības, tapas ir tieši tādas pašas un turpmākajās darbībās darbosies ar LCD iestatīšanu.

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

2. darbība: LCD uzstādīšana

LCD uzstādīšana
LCD uzstādīšana

Iestatiet tapas tāpat kā iepriekšējā piemērā.

Ja viss ir izdarīts pareizi, ekrāns iedegas baltā krāsā.

Ja jums nepieciešama papildu palīdzība vai vēlaties izmantot kādu koda paraugu, lai pārbaudītu savu displeju, varat skatīt šī moduļa oficiālo apmācību un tā koda piemērus šeit:

nākamajā darbībā mēs daļēji izmantosim "attēla zīmēšanu no SD kartes".

3. darbība: slaidrādes iestatīšana

Slaidrādes iestatīšana
Slaidrādes iestatīšana

Tagad, kad mums ir uzstādīts Potmetrs un LCD, mēs varam izveidot "slaidrādi", izmantojot potmetra kartētās vērtības

Izmantojot diapazonu no 0 līdz 255, mēs varam norādīt noteiktu diapazonu, kurā mēs varam aktivizēt arduino, lai parādītu kādu saturu LCD.

Pirmais piemērs, kā parādīts attēlā:

if (outputValue <51) {// diapazons viens, ja (rangeOne == true) {rangeTwo = true; myScreen.setRotation (90); myScreen.background (0, 0, 0); myScreen.troke (255, 255, 255); myScreen.text ("Sveiki, brīnišķīgi", 10, 50); myScreen.text ("pagriezt tapu> uz", 10, 60); myScreen.text ("saņemt iedrošinājumu", 10, 70); rangeOne = nepatiess;

Ja potmetrs pagriežas uz diapazonu, kas ir zemāks par 51, ekrāns ar displeju (portreta režīmā = 90) ir teksts.

Lai varētu parādīt attēlu, pārliecinieties, vai jūsu SD CS tapa ir definēta pareizi, pretējā gadījumā arduino neizdosies inicializēt SD (tāpēc noteikti pārbaudiet vadus!)

Ja vēlaties pārbaudīt LCD tapas, skatiet oficiālo rokasgrāmatu par ekrāna savienošanu

Es tagad definēju savu SD CS tapu kā 4, jo, piemēram, sajaucu vadus! - Es priecājos dalīties ar šo mazo oopsiju, jo tas ietaupīs daudz laika, meklējot tīmeklī kļūdu “Neizdevās inicializēt”. Uz ko dažos forumos ir teikts, ka risinājums ir noteiktā SD kartes modelis. Tāpēc pirms jaunu SD karšu iegādes vispirms pārbaudiet elektroinstalāciju !!

4. darbība. Pilna koda piemērs

#iekļaut

#include // Aparatūrai specifiska bibliotēka #include

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

const int analogInPin = A0; // Analogās ievades tapa, kurai pievienots potenciometrs

int sensorValue = 0; // vērtība, kas nolasīta no katla int outputValue = 0; // vērtības izvade uz PWM (analog out) bool rangeOne = true; bool rangeTwo = taisnība; bool rangeThree = taisnība; bool rangeFour = true; bool rangeFive = true;

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

PImage attēls; const char izdruka [9];

void setup () {Serial.begin (9600); myScreen.begin (); // mēģiniet piekļūt SD kartei Serial.print ("SD kartes inicializēšana …"); if (! SD.begin (SD_CS)) {Serial.println ("neizdevās!"); atgriešanās; } Serial.println ("Labi!");

// inicializēt un notīrīt GLCD ekrānu myScreen.begin (); myScreen.background (255, 255, 255);

} void loop () {// lasīt analoga vērtību: sensorValue = analogRead (analogInPin); // kartējiet to līdz analogās izejas diapazonam: outputValue = map (sensorValue, 0, 1023, 0, 255); String stuffToPrint = String (outputValue); // mainīt analogo izejas vērtību:

stuffToPrint.toCharArray (izdruka, 9); // statiskais teksts myScreen.setTextSize (1);

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

kavēšanās (50);

ja (outputValue līdz ", 10, 60); myScreen.text (" saņemt iedrošinājumu. ", 10, 70); rangeOne = false;}} ja (outputValue> 52 && outputValue 102 && outputValue 154 && outputValue <205) { / /diapazons četri, ja (rangeFour == true) {rangeThree = true; rangeFive = true; myScreen.setRotation (90); myScreen.background (255, 255, 255); // notīrīt ekrāna attēlu = myScreen.loadImage ("quote2.bmp "); // rakstīt attēlu ekrānā myScreen.image (attēls, 0, 0); myScreen.stroke (255, 255, 255); myScreen.text (" Es esmu tik lepns ", 10, 50); myScreen.text ("no jums!", 10, 60); rangeFour = false;}}

ja (outputValue> 206 && outputValue

Ieteicams: