Мазмуну:

Чоң ST7920 дисплейин колдонгон аба ырайы станциясы: 4 кадам
Чоң ST7920 дисплейин колдонгон аба ырайы станциясы: 4 кадам

Video: Чоң ST7920 дисплейин колдонгон аба ырайы станциясы: 4 кадам

Video: Чоң ST7920 дисплейин колдонгон аба ырайы станциясы: 4 кадам
Video: SKR PRO V1.1 TFT35 V2 2024, Ноябрь
Anonim
Аба ырайы бекети чоң ST7920 дисплейин колдонот
Аба ырайы бекети чоң ST7920 дисплейин колдонот
Аба ырайы бекети чоң ST7920 дисплейин колдонот
Аба ырайы бекети чоң ST7920 дисплейин колдонот
Аба ырайы бекети чоң ST7920 дисплейин колдонот
Аба ырайы бекети чоң ST7920 дисплейин колдонот

Урматтуу достор, дагы бир инструкцияга кош келиңиздер! Бул үйрөткүчтө, биз бул чоң LCD дисплейди биринчи жолу карап чыгабыз жана анын жардамы менен температура жана нымдуулук мониторун курабыз.

Мен дайыма 3D принтеримдин дисплейине окшош дисплейди билгим келет, анткени ал чоң жана арзан, ошондуктан көптөгөн долбоорлор үчүн абдан пайдалуу болот. Айлананы карап чыккандан кийин, принтеримдин дисплейи ушул экенин көрдүм. ST7920 драйвери бар чоң 3.2”дисплейи жана 128x64 пиксель токтому. Баракелде! Көрүнүп тургандай, бул биздин долбоорлордо буга чейин колдонуп келген дисплейлердин көпчүлүгүнөн алда канча чоң, ошондуктан келечектеги көптөгөн долбоорлордо пайдалуу болот. Бул болгону 6 доллардын тегерегинде!

Аны бул жерден алсаңыз болот →

Жабдуулар

  1. ЖК дисплей ST7920 →
  2. Arduino Uno →
  3. DHT22 сенсор →
  4. Breadboard →
  5. Зымдар →

1 -кадам: Arduino менен туташуу

Arduino менен байланыш
Arduino менен байланыш
Arduino менен байланыш
Arduino менен байланыш
Arduino менен байланыш
Arduino менен байланыш

Эми аны Arduino менен кантип колдонууну карап көрөлү. Мен бүгүн Arduino Uno колдоном, бирок ал көптөгөн Arduino такталары менен иштейт.

Дисплей микроконтроллер менен байланышуу үчүн SPI интерфейсин колдонот, андыктан биз аны Arduino тактасынын аппараттык SPI казыктарына туташтырышыбыз керек.

Көрүнүп тургандай, дисплейде туташтыруу үчүн көптөгөн казыктар бар, бирок кабатыр болбоңуз, биз бул казыктардын бардыгын туташтыруунун кажети жок, алардын 9у жана 4ү гана Arduino Uno тактасынын санарип казыктарына.

GND болгон биринчи пин Arduino GNDге барат. Vcc болгон экинчи пин Arduino 5V чыгуусуна барат. RS пин сандык пинге барат 10. R/W пин санариптик пинге өтөт 11. E пин санариптик пинге өтөт 13. PSB пин GNDге барат, RST пин 8 сандык пинге, BLA Arduino 3.3V чыгуусуна барат. жана BLK пин GNDге барат. Мына, биздин дисплей колдонууга даяр!

Эгерде биз дисплейдин бардык GND пиндерин бириктирсек, жашообузду жеңилдете алабыз.

2 -кадам: Дисплей үчүн китепкана

Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана
Көрсөтүү үчүн китепкана

Эми бул дисплейди иштетүү үчүн керектүү программалык камсыздоону карап көрөлү.

Мен бул дисплейди айдоо үчүн u8g китепканасын колдоном. Биринчиден, китепкананы орнотолу. Биз Arduino IDEди ачабыз жана менюдан Эскиз → Китепкананы кошуу → Китепканаларды башкарууну тандап U8G2 китепканасын издейбиз. Биз аны тандайбыз жана орнотууну басабыз! Мына, биздин китепкана колдонууга даяр.

Эми Файл → Мисалдарга өтөлү жана китепкана менен берилген мисалдардан GraphicsText мисалын иштетели. Тактага жүктөө алдында биз эскизге бир гана өзгөртүү киргизишибиз керек. U8G китепканасы көптөгөн дисплейлерди колдогондуктан, биз дисплейибизге ылайыктуу конструкторду тандашыбыз керек. Ошентип, биз "ST7920" кодун издейбиз жана жеткиликтүү конструкторлордон HW_SPI бирин колдонууну тандап алабыз. Биз бул сапты мындай комментарийлебейбиз жана эскизди Arduinoго жүктөөгө даярбыз. Бир нече секунддан кийин эскиз иштеп жатат.

Эгерде сиз дисплейде эч нерсе көрө албасаңыз, дисплейдин арт жагында жайгашкан бул кичинекей потенциометрдин жардамы менен дисплейдин контрастын тууралашыңыз керек

Эми демо эскизин бир нече секунд карап көрөлү. Көрүнүп тургандай, бул мисал эскиз китепкананын жана дисплейдин мүмкүнчүлүктөрүн көрсөтөт. Бул дисплей менен биз кээ бир сонун анимацияларга жете алабыз, бул абдан жөндөмдүү. Ошондуктан ал көптөгөн 3D принтерлерде колдонулат.

3 -кадам: Аба ырайы станциясын куралы

Аба ырайы станциясын куралы
Аба ырайы станциясын куралы
Аба ырайы станциясын куралы
Аба ырайы станциясын куралы
Аба ырайы станциясын куралы
Аба ырайы станциясын куралы
Аба ырайы станциясын куралы
Аба ырайы станциясын куралы

Эми пайдалуу бир нерсе куралы. Келгиле, DHT22 температура жана нымдуулук сенсорун Arduino менен байланыштырабыз. Бизге кубат жана сигнал зымы гана керек, аны мен санарип пин 7ге туташтырам. Ишти жеңилдетүү үчүн мен кичинекей нан тактасын колдондум. Бул жерде тиркелген схеманы таба аласыз.

Көрүнүп тургандай, долбоор жакшы иштеп жатат жана ал реалдуу убакытта температураны жана нымдуулукту көрсөтөт.

Эми долбоордун кодун тез карап көрөлү. Болгону 60 сап код менен биз мындай долбоорду кура алабыз! Бул кандай сонун! Дисплейди колдонуу үчүн биз бул конструкторду колдонуубуз керек:

U8G2_ST7920_128X64_1_HW_SPI u8g2 (U8G2_R0, /* CS =* / 10, /* баштапкы абалга келтирүү =* / 8);

орнотуу функциясында дисплейди баштоо:

u8g2.begin (); u8g2.enableUTF8Print (); u8g2.setFont (u8g2_font_helvB10_tf); u8g2.setColorIndex (1);

анан биз эмне кылганыбыз - бул температура жана нымдуулук үчүн алкактарды жана жиптерди тартуу:

u8g2.drawFrame (0, 0, 128, 31);

u8g2.drawFrame (0, 33, 128, 31); u8g2.drawStr (15, 13, "Температура");

Биз кылышыбыз керек болгон акыркы нерсе - температураны жана нымдуулукту сенсордон окуу жана экранда көрсөткүчтү көрсөтүү.

void readTemperature ()

{float t = dht.readTemperature (); dtostrf (t, 3, 1, температура); }

Дайыма эле бул жерде тиркелген долбоордун кодун таба аласыз.

4 -кадам: Акыркы ойлор

Акыркы ойлор
Акыркы ойлор

Акыркы ой катары, менимче, бул дисплей бизге чоң дисплей керек болгон жана түстөрдүн кереги жок болгон долбоорлордо абдан пайдалуу. Бул арзан жана колдонууга оңой. Мен муну келечектеги кээ бир долбоорлордо колдоном деп ойлойм.

Бул көргөзмө тууралуу сиздин пикириңизди билгим келет. Кандай деп ойлойсуз, алар мындай дисплейден кандай пайда алышат? Сиздин идеяларыңыз үчүн жана бул Нускаманы окуу үчүн рахмат. Кийинки жолу көрүшөм!

Сунушталууда: