Translate

ARDUINO Monitor Suhu MLX90614 dan ADC Penampil DMD Panel Led P10

ARDUINO Monitor Suhu MLX90614 dan ADC Penampil DMD Panel Led P10


        Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat untuk mengukur suhu dengan penampil adalah DMD Led Panel P10. alat ini menggunakan arduino sebagai procesornya, jadi yang ditampilkan adalah dua buah sensor yaitu sensor analog dan digital, sebagai contoh yang dipakai adalah nilai ADC dan sensor MLX90614. untuk lebih jelasnya berikut adalah skema dan programnya.   



a. Arduino Uno




b. DMD Panel Led P10




c. Sensor Suhu MLX90614





d. Program Arduino IDE 

#include <Wire.h>
#include <SPI.h>        //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
#include <DMD.h>        //Library DMD yang menyediakan fungsi penampilan teks, gambar dsb
#include <TimerOne.h>   //Library peripheral Timer1 untuk menjalankan prosedur pindai panel DMD
#include <Time.h>     //Library waktu yang menyediakan tipe data, struktur, dan obyek waktu
#include <DS1307RTC.h>  // Library RTC
#include "Arial_black_16.h"
#include "Arial_Black_16_ISO_8859_1.h"
#include "Arial14.h"
#include "DejaVuSans9.h"
#include "DejaVuSansBold9.h"
#include "DejaVuSansItalic9.h"
#include "Droid_Sans_12.h"
#include "Droid_Sans_16.h"
#include "Mono5x7.h"
#include "SystemFont5x7.h"

#define WAKTU_TAMPIL_JAM      10    //detik
#define WAKTU_TAMPIL_KALENDAR 5     //detik

#define DISPLAY_COLUMN_COUNT  2
#define DISPLAY_ROW_COUNT     1

#define PIXELS_PER_COLUMN  32
#define PIXELS_PER_ROW    16

#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

DMD dmd(DISPLAY_COLUMN_COUNT, DISPLAY_ROW_COUNT);
unsigned char show = 0;

unsigned int suhu;
unsigned int suhux;
unsigned int dataadc;

char lineBuff[20];
char lineBuffx[20];
  
void ScanDMD()
{
  dmd.scanDisplayBySPI();
}


void setup(void)
{
  mlx.begin(); 
  dmd.clearScreen( true );   //true is normal (all pixels off), false is negative (all pixels on)
  Serial.begin(9600);
   //initialize TimerOne's interrupt/CPU usage used to scan and refresh the display
  Timer1.initialize( 1000 );           //period in microseconds to call ScanDMD. Anything longer than 5000 (5ms) and you can see flicker.
  Timer1.attachInterrupt( ScanDMD );   //attach the Timer1 interrupt to ScanDMD which goes to dmd.scanDisplayBySPI()

  //clear/init the DMD pixels held in RAM
  dmd.clearScreen( true ); 
 
}


void loop(void)
{
      suhu = mlx.readAmbientTempC();
      suhux = mlx.readObjectTempC();
      dataadc = analogRead(A0);
     
      sprintf(lineBuff, "%d|%d", suhu, suhux);
      sprintf(lineBuffx, "%d ", dataadc);

      dmd.selectFont(DejaVuSans9);
      dmd.selectFont(Mono5x7);
      dmd.drawString( 33,  0, lineBuff, strlen(lineBuff), GRAPHICS_NORMAL);  
      dmd.drawString( 33,  8, lineBuffx, strlen(lineBuffx), GRAPHICS_NORMAL);  


delay(1000);
}




e. Konfigurasi Arduino ke Panel Led P10 DMD





f. VIDEO HASILNYA








No comments:

Post a Comment