MEMS displej LED: Rozdiel medzi revíziami
Zo stránky SensorWiki
Bez shrnutí editace |
Bez shrnutí editace |
||
Riadok 1: | Riadok 1: | ||
== 7-segmentový displej s radičom TM1637 == | == 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. | |||
<center> | <center> | ||
Riadok 13: | Riadok 12: | ||
<center> | <center> | ||
[[Súbor:displayTM1637schematic.png]]<BR> | [[Súbor:displayTM1637schematic.png]]<BR> | ||
<I>Pravdepodobná schéma zapojenia modulu.</I> | <I>Pravdepodobná [[http://senzor.robotika.sk/mips/TM1637schematic.pdf schéma zapojenia modulu].</I> | ||
</center> | </center> | ||
* Datasheet obvodu (local copy) | * [https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/datasheet/unit/digi_clock/TM1637.pdf Datasheet obvodu] ([http://senzor.robotika.sk/mips/TM1637.pdf local copy]) | ||
* [https://www.snapeda.com/parts/TM1637/Titan%20Micro%20Electronics/view-part/ 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) | * 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/ | * Mbed projekt aj s tlačíťkami https://os.mbed.com/components/TM1637-LED-controller-48-LEDs-max-Keyboa/ |
Verzia z 14:16, 18. 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.
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 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
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
}