Operácie

MEMS displej LED: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Balogh (diskusia | príspevky)
 
Riadok 76: Riadok 76:
{{wbox | text =  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
{{wbox | text =  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.
Druhá možnosť je opraviť chybu ručne: knižnica sa nachádza <code>Moje dokumenty / Arduino / libraries / SevenSegmentTM1637</code>.
 
Knižnica sa nachádza <code>Moje dokumenty / Arduino / libraries / SevenSegmentTM1637</code>.


V nej opravíte nesprávny názov funkcie <code>bouncingBall</code>  v subore <code>SevenSegmentFun.cpp</code> na riadku '''187''' na názov <code>bouchingBall</code>
V nej opravíte nesprávny názov funkcie <code>bouncingBall</code>  v subore <code>SevenSegmentFun.cpp</code> na riadku '''187''' na názov <code>bouchingBall</code>

Aktuálna revízia z 12:22, 23. 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.


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



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


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 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



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


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 Moje dokumenty / Arduino / libraries / SevenSegmentTM1637.

V nej opravíte 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.

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
}