Тёмный
No video :(

7 segment Clock with wifi using Node MCU + Multiplexing 

Fischl Official
Подписаться 82
Просмотров 48
50% 1

Опубликовано:

 

27 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 2   
@fischlofficialxd
@fischlofficialxd Месяц назад
Connect the segment a-g in parallel of all display, only the common ground pins will be connected seperately. They are called display pins in code
@fischlofficialxd
@fischlofficialxd Месяц назад
Here is code: #include #include #include // Wi-Fi credentials const char* ssid = "PSN broadband_Mevan"; const char* password = "Mevanedma1998"; // Define the segment pins #define SEG_A D0 #define SEG_B D1 #define SEG_C D2 #define SEG_D D4 #define SEG_E D5 #define SEG_F D6 #define SEG_G D7 #define SEG_DP A0 // Define the common pins for the displays #define DISP1 D8 // GPIO15 #define DISP2 3 // RX (GPIO3) #define DISP3 1 // TX (GPIO1) #define DISP4 D3 // GPIO0 WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "pool.ntp.org", 19800, 60000); // Update time every 60 seconds, offset for IST is 19800 seconds int dt = 5; // Delay time for multiplexing void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); timeClient.begin(); // Initialize segment pins as outputs pinMode(SEG_A, OUTPUT); pinMode(SEG_B, OUTPUT); pinMode(SEG_C, OUTPUT); pinMode(SEG_D, OUTPUT); pinMode(SEG_E, OUTPUT); pinMode(SEG_F, OUTPUT); pinMode(SEG_G, OUTPUT); pinMode(SEG_DP, OUTPUT); // Initialize common pins for displays as outputs pinMode(DISP1, OUTPUT); pinMode(DISP2, OUTPUT); pinMode(DISP3, OUTPUT); pinMode(DISP4, OUTPUT); // Turn off all segments initially turnOffSegments(); } void loop() { timeClient.update(); int hours = timeClient.getHours(); int minutes = timeClient.getMinutes(); displayTime(hours, minutes); } void turnOffSegments() { digitalWrite(SEG_A, LOW); digitalWrite(SEG_B, LOW); digitalWrite(SEG_C, LOW); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, LOW); digitalWrite(SEG_DP, LOW); } void firstDigit() { digitalWrite(DISP1, LOW); digitalWrite(DISP2, HIGH); digitalWrite(DISP3, HIGH); digitalWrite(DISP4, HIGH); } void secondDigit() { digitalWrite(DISP1, HIGH); digitalWrite(DISP2, LOW); digitalWrite(DISP3, HIGH); digitalWrite(DISP4, HIGH); } void thirdDigit() { digitalWrite(DISP1, HIGH); digitalWrite(DISP2, HIGH); digitalWrite(DISP3, LOW); digitalWrite(DISP4, HIGH); } void fourthDigit() { digitalWrite(DISP1, HIGH); digitalWrite(DISP2, HIGH); digitalWrite(DISP3, HIGH); digitalWrite(DISP4, LOW); } void clearDigits() { digitalWrite(DISP1, HIGH); digitalWrite(DISP2, HIGH); digitalWrite(DISP3, HIGH); digitalWrite(DISP4, HIGH); } void zero() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, LOW); } void one() { digitalWrite(SEG_A, LOW); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, LOW); } void two() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, LOW); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, HIGH); } void three() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, HIGH); } void four() { digitalWrite(SEG_A, LOW); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); } void five() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, LOW); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); } void six() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, LOW); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); } void seven() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, LOW); digitalWrite(SEG_G, LOW); } void eight() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, HIGH); digitalWrite(SEG_E, HIGH); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); } void nine() { digitalWrite(SEG_A, HIGH); digitalWrite(SEG_B, HIGH); digitalWrite(SEG_C, HIGH); digitalWrite(SEG_D, LOW); digitalWrite(SEG_E, LOW); digitalWrite(SEG_F, HIGH); digitalWrite(SEG_G, HIGH); } void doDigitPinout(int digit) { switch (digit) { case 0: zero(); break; case 1: one(); break; case 2: two(); break; case 3: three(); break; case 4: four(); break; case 5: five(); break; case 6: six(); break; case 7: seven(); break; case 8: eight(); break; case 9: nine(); break; default: break; } } void displayTime(int hours, int minutes) { int hourTens = hours / 10; int hourOnes = hours % 10; int minuteTens = minutes / 10; int minuteOnes = minutes % 10; for (int i = 0; i < 100; i++) { firstDigit(); doDigitPinout(hourTens); delay(dt); secondDigit(); doDigitPinout(hourOnes); delay(dt); thirdDigit(); doDigitPinout(minuteTens); delay(dt); fourthDigit(); doDigitPinout(minuteOnes); delay(dt); } clearDigits(); }
Далее
Hacking a weird TV censoring device
20:59
Просмотров 3 млн
I Built a Transparent Boomerang (it's lethal)
13:10
Просмотров 4,2 млн
Why The Windows Phone Failed
24:08
Просмотров 873 тыс.
M5 Bruce is on guys!!
19:59
Просмотров 10 тыс.
Is it the volts or amps that kill?
20:50
Просмотров 4,3 млн
Level 1 to 100 Impossible Puzzles
17:25
Просмотров 6 млн
3 Hours vs. 3 Years of Blender
17:44
Просмотров 4,6 млн
Fans; High is next to Off on purpose
17:48
Просмотров 4,3 млн
What Are Those Other Weird QR Codes?
16:10
Просмотров 995 тыс.