Translate

ESP32 Monitoring ADC Penampil DMD P10

ESP32 Monitoring ADC Penampil DMD P10
 

           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan ESP32 untuk menampilkan ADC ke interface DMD P10. alat ini tanpa wifi atau internet sehingga bisa dengan mudah untuk mengendalikannya. untuk lebih jelasnya berikut kodingnya.
 
 
1. Skema
 

 
2. Program Arduino IDE
 
 /*
GND – GND
OE – D23
A – D19
B – D21
CLK – D18
LAT – D2
DR – D23
VCC – VP
GND – EN
*/

#include <DMD32.h>  //--> DMD32 by Qudor-Engineer (KHUDHUR ALFARHAN) : https://github.com/Qudor-Engineer/DMD32
#include "fonts/SystemFont5x7.h"
#include "fonts/Arial_black_16.h"

#define DISPLAYS_ACROSS 1
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_ACROSS, DISPLAYS_DOWN);

// Timer setup.
// create a hardware timer  of ESP32.
hw_timer_t * timer = NULL;

unsigned int suhu;
unsigned int suhux;
char lineBuff[20];
char lineBuffx[20];

//________________________________________________________________________________IRAM_ATTR triggerScan()
//  Interrupt handler for Timer1 (TimerOne) driven DMD refresh scanning,
//  this gets called at the period set in Timer1.initialize();
void IRAM_ATTR triggerScan() {
  dmd.scanDisplayBySPI();
}
//________________________________________________________________________________

//________________________________________________________________________________VOID SETUP()
void setup() {
  // put your setup code here, to run once:
  
  Serial.begin(115200);
  Serial.println();
  delay(500);
 
  Serial.println();
  Serial.println("return the clock speed of the CPU.");
  // return the clock speed of the CPU.
  uint8_t cpuClock = ESP.getCpuFreqMHz();
  delay(500);

  Serial.println();
  Serial.println("Timer Begin");
  // Use 1st timer of 4.
  // devide cpu clock speed on its speed value by MHz to get 1us for each signal  of the timer.
  timer = timerBegin(0, cpuClock, true);
  delay(500);

  Serial.println();
  Serial.println("Attach triggerScan function to our timer.");
  // Attach triggerScan function to our timer.
  timerAttachInterrupt(timer, &triggerScan, true);
  delay(500);

  Serial.println();
  Serial.println("Set alarm to call triggerScan function.");
  // Set alarm to call triggerScan function.
  // Repeat the alarm (third parameter).
  timerAlarmWrite(timer, 300, true);
  delay(500);

  Serial.println();
  Serial.println("Start an alarm.");
  // Start an alarm.
  timerAlarmEnable(timer);
  delay(500);
  
  dmd.clearScreen(true);
  delay(1000);
}

void loop() {

  suhu = analogRead(34);
  suhux = analogRead(35);
             
  sprintf(lineBuff, "%d  ", suhu);
  sprintf(lineBuffx, "%d  ", suhux);

  dmd.selectFont(SystemFont5x7);
  dmd.drawString( 0,  0, lineBuff, strlen(lineBuff), GRAPHICS_NORMAL);  
  dmd.drawString( 0,  8, lineBuffx, strlen(lineBuffx), GRAPHICS_NORMAL);   

  delay(100);
}
 
 
 
3. VIDEO HASILNYA
 

 

No comments:

Post a Comment