Operácie

MEMS displej LED: Rozdiel medzi revíziami

Z SensorWiki

(Nainštalujeme knižnicu pre TM1637)
Riadok 68: Riadok 68:
 
<I>Inštalácia knižnice pre displej v prostredí Arduino.</I>
 
<I>Inštalácia knižnice pre displej v prostredí Arduino.</I>
 
</center>
 
</center>
 +
 +
 +
'''POZN.:'''  V knižnici je chybička, ktorá sa v najnovšej verzii na GitHube nenachádza. Preto si zaktualizujte súbory odtiaľto: https://github.com/bremme/arduino-tm1637
 +
 +
Druhá možnosť je opraviť nesprávny názov funkcie <code>bouncingBall</code>  v subore <code>SevenSegmentFun.cpp</code> na riadku '''187''' na názov <code>bouchingBall</code>
 +
tak, aby to súhlasilo s názvom v hlavičkovom súbore. Prípadne stačí vymazať oba súbory <code>SevenSegmentFun.cpp</code> and <code>SevenSegmentFun.h</code> ak nebudete používať demonštračné príklady.
 +
 +
Knižnica sa nachádza <code>Moje dokumenty / Arduino / libraries / SevenSegmentTM1637</code>
  
 
== Ukážkový program ==
 
== Ukážkový program ==

Verzia zo dňa a času 07:49, 21. február 2023

7-segmentový displej s radičom TM1637

Obvod TM1637 umožňuje pripojiť až 48 LED (napr. 6x 7-segmentový displej aj s desatinnou bodkou) a 4x4 tlačítkovú klávesnicu.

DisplayTM1637.jpg
Rozličné informácie zobrazené na displeji.


DisplayTM1637schematic.png
Pravdepodobná schéma zapojenia modulu.



Zapojenie vývodov a pripojenie k mikroprocesoru

Zem a napájanie pripojíme na rovnomenné piny na experimentálnej doske. Signály DIO a CLK môžeme pripojiť na ľubovoľné GPIO piny procesora, ale ak chcete aby fuhgoval vzorový program bezo zmeny, musíte pripojiť CLK na D4 a DIO na D5.


TM1637 Názov Arduino pin
CLK Clock D4
DIO Data D5
VCC Napájanie +5V
GND Zem GND

DisplayTM1637pinout.png
Opis pripojenia a označenie vývodov.

Nainštalujeme knižnicu pre TM1637

V prostredí Arduino zvolíme v menu položku Tools -> Library Manager a keď sa otvorí nové okno so zoznamom použiteľných knižníc, odfiltrujeme všetky, ktoré neobsahujú text TM1637. Z ponúkaných knižníc vyberieme SevenSegmentTM1637 library (pozri aj obr.). Ak chcete preskúmať všetky možnosti tejto knižnice, skúste si spustiť príklady, ktoré nájdete v menu File -> Examples -> SevenSegmentTM1637 ->

Dokumentáciu a zdrojáky knižnice nájdete na GitHube SevenSegmentTM1637

Podobná knižnica pre kompilátor avr-gcc je tu: https://github.com/AlexAlexFr/TM1637-Driver


ArduinoLibraryTM1637install.png
Inštalácia knižnice pre displej v prostredí Arduino.


POZN.: V knižnici je chybička, ktorá sa v najnovšej verzii na GitHube nenachádza. Preto si zaktualizujte súbory odtiaľto: https://github.com/bremme/arduino-tm1637

Druhá možnosť je opraviť nesprávny názov funkcie bouncingBall v subore SevenSegmentFun.cpp na riadku 187 na názov bouchingBall tak, aby to súhlasilo s názvom v hlavičkovom súbore. Prípadne stačí vymazať oba súbory SevenSegmentFun.cpp and SevenSegmentFun.h ak nebudete používať demonštračné príklady.

Knižnica sa nachádza Moje dokumenty / Arduino / libraries / SevenSegmentTM1637

Ukážkový program

Nasledovný program zobrazí na displeji hodnotu zmeranú A/D prevodníkom.

/*
	Basic usage example
	The circuit:
  * connect TM1637 pin CLK to Arduino pin D4
  * connect TM1637 pin DIO to Arduino pin D5
  * connect TM1637 pin Vcc to Arduino pin 5V
  * connect TM1637 pin GND to Arduino pin GND

*/

#include "SevenSegmentTM1637.h"  // include the SevenSegmentTM1637 library

/* initialize global TM1637 Display object
*  The constructor takes two arguments, the number of the clock pin and the digital output pin:
*  SevenSegmentTM1637(byte pinCLK, byte pinDIO);
*/
const byte PIN_CLK = 4;   // define CLK pin (any digital pin)
const byte PIN_DIO = 5;   // define DIO pin (any digital pin)
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);

char buffer[5];
int adcVal;
  
// run setup code
void setup() {
  Serial.begin(9600);         // initializes the Serial connection @ 9600 baud
  display.begin();            // initializes the display
  display.setBacklight(50);  // set the brightness to 100 %
  display.print("INIT");      // display INIT on the display
  delay(1000);                // wait 1000 ms
}


void loop()
{
  
  display.clear();   
  adcVal = analogRead(4);
  sprintf(buffer, "%4d", adcVal);
  display.print(buffer);                   // display loop counter
  Serial.println(buffer);
  delay(250);                          // wait 1000 ms
}