Operácie

MEMS displej LED: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Balogh (diskusia | príspevky)
Riadok 100: Riadok 100:


#include "SevenSegmentTM1637.h"  // include the SevenSegmentTM1637 library
#include "SevenSegmentTM1637.h"  // include the SevenSegmentTM1637 library
#define mySensor 4 


/* initialize global TM1637 Display object
/* initialize global TM1637 Display object
Riadok 109: Riadok 110:
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);


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


Riadok 125: Riadok 127:
{
{
    
    
   display.clear();  
   display.clear();                   // clear previous value
   adcVal = analogRead(4);
   adcValue = analogRead(mySensor);   // read ADC value
   sprintf(buffer, "%4d", adcVal);
 
   display.print(buffer);                   // display loop counter
   sprintf(buffer, "%4d", adcVal);   // formatted print to the buffer
   Serial.println(buffer);
   display.print(buffer);             // display the number on display
   delay(250);                         // wait 1000 ms
 
   Serial.println(buffer);           // and also send to serial
   delay(250);                       // wait 250 ms
}
}
</source></tab>
</source></tab>
</tabs>
</tabs>

Verzia z 16:28, 23. február 2025

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
#define mySensor 4  

/* 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];                // temporary buffer for formatting number
int adcValue;
  
// run setup code
void setup() {
  Serial.begin(57600);         // initializes the Serial connection @ 57 600 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();                   // clear previous value
  adcValue = analogRead(mySensor);   // read ADC value

  sprintf(buffer, "%4d", adcVal);    // formatted print to the buffer
  display.print(buffer);             // display the number on display

  Serial.println(buffer);            // and also send to serial
  delay(250);                        // wait 250 ms
}