Difference between revisions of "4-Digital Display"

From
Jump to: navigation, search
(Liens externes)
(Liens externes)
Line 194: Line 194:
 
==== Liens externes ====
 
==== Liens externes ====
  
[https://www.seeedstudio.com/Grove-4-Digit-Display.html https://www.seeedstudio.com/Grove-4-Digit-Display.html]shop<br>
+
[https://www.seeedstudio.com/Grove-4-Digit-Display.html https://www.seeedstudio.com/Grove-4-Digit-Display.html] shop<br>
  
 
[http://wiki.seeedstudio.com/Grove-4-Digit_Display/ wiki]
 
[http://wiki.seeedstudio.com/Grove-4-Digit_Display/ wiki]

Revision as of 17:41, 30 May 2025

Grove - 4-Digital Displays (Seeed-Studio)

Caractéristiques

Grove compatible interface (3.3V/5V)

connect to D2/D3
4 digit red alpha-numeric display
8 adjustable luminance levels

Support

4-Digital Display recto.jpg 4-Digital Display verso.jpg 4-digit display interface.jpg

Drivers

chip - TM1637

Librairies

TimerOne library

Grove_4Digital_Display Library

Four-Digit Display Suli Library

Voltage

3.3V ~ 5.5V

Code Exemple->DigitalTube->ClockDisplay

Copier les deux librairies dans C:\Program Files (x86)\Arduino\libraries, exécuter Arduino IDE, chercher l'exemple, choisir Arduino UNO, et le port COM

	//  Author:Frankie.Chu
	//  Date:9 April,2012

	#include <TimerOne.h>
	#include "TM1637.h"
	#define ON 1
	#define OFF 0

	int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
	unsigned char ClockPoint = 1;
	unsigned char Update;
	unsigned char halfsecond = 0;
	unsigned char second;
	unsigned char minute = 0;
	unsigned char hour = 12;


	#define CLK 2//pins definitions for TM1637 and can be changed to other ports    
	#define DIO 3
	TM1637 tm1637(CLK,DIO);

	void setup()
	{
	  tm1637.set();
	  tm1637.init();
	  Timer1.initialize(500000);//timing for 500ms
	  Timer1.attachInterrupt(TimingISR);//declare the interrupt serve routine:TimingISR  
	}
	void loop()
	{
	  if(Update == ON)
	  {
		TimeUpdate();
		tm1637.display(TimeDisp);
	  }
	  
	}
	void TimingISR()
	{
	  halfsecond ++;
	  Update = ON;
	  if(halfsecond == 2){
		second ++;
		if(second == 60)
		{
		  minute ++;
		  if(minute == 60)
		  {
			hour ++;
			if(hour == 24)hour = 0;
			minute = 0;
		  }
		  second = 0;
		}
		halfsecond = 0;  
	  }
	 // Serial.println(second);
	  ClockPoint = (~ClockPoint) & 0x01;
	}
	void TimeUpdate(void)
	{
	  if(ClockPoint)tm1637.point(POINT_ON);
	  else tm1637.point(POINT_OFF); 
	  TimeDisp[0] = hour / 10;
	  TimeDisp[1] = hour % 10;
	  TimeDisp[2] = minute / 10;
	  TimeDisp[3] = minute % 10;
	  Update = OFF;
	}


il affiche 02:21 et ensuite il modifié le 1er digit à un intervalle regulier

Code Wokwi

wokwi-esp32-devkit-v1, Anonymous
https://wokwi.com/projects/376726394500720641

#if defined(ESP8266)
  #include <ESP8266WiFi.h>
#elif defined(ESP32)
  #include <WiFi.h>
#endif

#include <TM1637Display.h>
#include <NTPClient.h>
#include <WiFiUdp.h>

// Define the pins for TM1637
#if defined(ESP8266)
  #define CLK_PIN 0 // GPIO0
  #define DIO_PIN 2 // GPIO2
#elif defined(ESP32)
  #define CLK_PIN 4
  #define DIO_PIN 5
#endif

// Initialize the TM1637 display
TM1637Display display(CLK_PIN, DIO_PIN);

const char* ssid = "Wokwi-GUEST";
const char* password = "";

// Define NTP Server
const char* ntpServerName = "pool.ntp.org";
// Initialize UDP client for NTP
WiFiUDP ntpUDP;
// Define time zone (GMT+7 for Bangkok, Thailand)
const long utcOffsetInSeconds = 7 * 3600;
NTPClient timeClient(ntpUDP, ntpServerName, utcOffsetInSeconds);

void setup() {
  Serial.begin(115200);

  // Initialize the TM1637 display
  display.setBrightness(0x0a); // Set the brightness (0x00 to 0x0f)

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(250);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
 
  // Initialize the time client
  timeClient.begin();
  timeClient.setTimeOffset(utcOffsetInSeconds);
}


void loop() {
  // Update the time from the NTP server
  timeClient.update();
  // Get the current time
  uint8_t hours = timeClient.getHours();
  uint8_t minutes = timeClient.getMinutes();
 
  if (hours >= 7 && hours < 18) {
    display.setBrightness(0x0f); // Set the brightness to high
  } else {
    display.setBrightness(0x07); // Set the brightness to medium
  }
  // Display the time on the TM1637 display
  display.showNumberDecEx(hours * 100 + minutes, 0b11100000, true); //Flash every 2 seconds
  
  uint8_t seconds = timeClient.getSeconds();
  Serial.println((String)hours + ":" + minutes + ":" + seconds);
  delay(1000); // Update the display every second
  
}

Liens internes

Main page


Liens externes

https://www.seeedstudio.com/Grove-4-Digit-Display.html shop

wiki