MEMS displej LED
Zo stránky SensorWiki
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.
Pravdepodobná schéma zapojenia modulu.
- Datasheet obvodu (local copy)
- CAD súbory na SnapEDA
- Podobný projekt aj s tlačítkami https://www.pcbway.com/project/sponsor/TM1637_display_with_buttons_and_leds_for_Arduino.html (spraviť v SMD verzii pre Acrob dosku)
- Mbed projekt aj s tlačíťkami https://os.mbed.com/components/TM1637-LED-controller-48-LEDs-max-Keyboa/
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 |
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 už je nainštalovaná, netreba robiť nič. Ak nie je, tlačidlom INSTALL si ju nahráte.
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
Poznámka
V knižnici, ktorú inštaluje Arduino 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ť chybu ručne: knižnica sa nachádza V nej opravíte nesprávny názov funkcie |
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
}