Kamis, 22 Februari 2018

Tutorial menggunakan lcd grafik 128x64 dengan arduino mega

Sebelumnya selamat datang di blog ini, dan terima kasih telah berkunjung,
Kali ini saya sebagai bloger akan memberikan tutorial bagaimana cara mempergunakan lcd grafik 128x64 dengan arduino mega,
Mungkin bagi rekan - rekan yang belum pernah mempergunakannya akan terasa sulit dalam pemakaiannya, dan tutorialnya kebanyakan mempergunakan arduino uno sebagai kontroler.

Yang perlu rekan - rekan sediakan paa tutorial ini komponenya sebagai berikut:
  Setelah bahan diatas tersedia maka rangkailah seperti yang di bawah ini:

Selanjutnya buka arduino IDE pada pc saudara dan silahkan upload program yang dibawah ini:

#include "U8glib.h"

U8GLIB_ST7920_128X64 u8g(13, 11, 12, U8G_PIN_NONE);

void text() {
  u8g.firstPage(); 
  do {
  u8g.setFont(u8g_font_helvB08);
  u8g.drawFrame(0,0,128,64); 
  u8g.drawFrame(2,2,124,60);
  u8g.drawStr( 18, 30, "BINTANG ROBOTIKA");//tampilan lcd
  u8g.drawHLine( 12, 34, 105);
  u8g.drawStr( 22, 48, "LCD GRAFIK 128x64");// tampilan lcd
   } while( u8g.nextPage() );
}

void draw() {
 u8g.firstPage(); 
  do {
u8g.setFont(u8g_font_04b_03b);
//u8g.setFont(u8g_font_osb21);
u8g.drawStr( 0, 22, "MIKROCONTROLER ARDUINO MEGA");////tampilan lcd
} while( u8g.nextPage() );
}


void setup(void) {
// assign default color value
if ( u8g.getMode() == U8G_MODE_R3G3B2 )
u8g.setColorIndex(255); // white
else if ( u8g.getMode() == U8G_MODE_GRAY2BIT )
u8g.setColorIndex(3); // max intensity
else if ( u8g.getMode() == U8G_MODE_BW )
u8g.setColorIndex(1); // pixel on
}

void loop(void) {
text();
delay(3000);
draw();
delay(3000);
}

Setelah di upload maka lcd akan menampilkan void text dan void draw secara bergantian dengan delay 3000 ms seperti yang telah kita program untuk lama atau cepat tampilan rekan - rekan silahkan aja rubah delaynya.
Untuk merubah tampilan pada lcd silahkan di ubah aja tulisan yang ada dialam kutip 2 terserah mau diganti pake apa.
catatan bagi para pemula ya bagi yang baru belajar silahkan download library dan masukan kedalam library arduino IDE nya kalau tiak maka programnya akan salah.
untuk cara memasukan librarynya kalian tanya saja sama OM google, atau komen aja dibawah mungkin mau tanya - tanya lebih lanjut.

Share:

Rabu, 21 Februari 2018

Mengontrol lampu menggunakan modul gsm dan arduino mega

Hai para sahabat Mikrocontroler & Robotika...
Pada postingan kali ini kita akan mencoba untuk mengontol hidup dan mati lampu menggunkan modul gsm sesuai dengan judul postingan di atas.
Sebelum kita mulai project kali ini mari kita persiapkan dulu bahan-bahannya seperti berikut:
  1. Arduino Mega (terserah para sahabat menggunakan arduino apa yang penting ada arduinonya)
  2. Modul Gsm sim 800L (kita pake yang murah meriah aja modul gsm nya,bisa pake modul yg lain asalkan modul gsm)
  3. Relay 5 Volt 2 Chanel  ( disini saya menggunakan relay Aktifnya = LOW & matinya = HIGH)
  4. 2 buah bola lampu  

Setelah bahannya cukup mari kita bikin rangkaiannya seperti yang dibawah ini:

Rangkain di atas kita pergunakan untuk mengontrol 2 buah lampu dengan cara mengirimkan sms untuk menghidup dan mematikan lampu, bisa dipergunakan lebih banyak lagi untuk selanjutnya rekan - rekan berkarya aja sendiri.
Untuk modul Gsmnya kita pergunakan stepdown karna arus untuk modul Gsm menggunakan arus Dc 3,7 - 4.0 Volt, kelebihan arus modul Gsm akan rusak.
Selanjutnya kita langsung aja memulai programnya, pada postingan kali ini kita tidak memerlukan libray untuk modul gsmnya kita akan pergunakan pin serial 1 pada arduino mega yang terletak pada pin 18 dan 19, bagi rekan - rekan yang mau pake library sim 800L silahkan cari sendiri librarynya.

Berikut program Arduino & modul Gsmnya:

int lampu1 = 10;
int lampu2 = 11;

char text[500] = "";
int amak = 0;
bool abak = false;

void setup() {
 Serial.begin(9600);
 Serial1.begin(9600);

 pinMode(lampu1, OUTPUT);
 pinMode(lampu2, OUTPUT);
 digitalWrite(lampu1, HIGH);
 digitalWrite(lampu2, HIGH);

 Serial1.println("AT+CMGF=1");
 delay(200);
 Serial1.println("AT+CNMI=2,2,0,0,0");
 delay(1000);
}

void loop()
{
  if(Serial1.available()){
    char lastCharRead = Serial1.read();
      if(lastCharRead == '\r' || lastCharRead == '\n'){
        String sms = String(text);
        if(sms.startsWith("+CMT:")){
          
          Serial1.println(sms);
          abak = true;

         
        } else if (sms.length() > 0) {
          // kirim text sms 
          if(abak) {
            Serial1.println(sms);
            if(sms.indexOf("LAMPU 1 ON") >= 0){
            digitalWrite(lampu1, LOW);// lampu 1 hidup
            Serial.print("lampu 1 hidup");
            }
            else if(sms.indexOf("LAMPU 1 OFF") >= 0) {
            digitalWrite(lampu1, HIGH);// lampu 1 mati
            Serial.print("lampu 1 mati");
            } 
            else if(sms.indexOf("LAMPU 2 ON") >= 0) {
            digitalWrite(lampu2, LOW);//lampu 2 hidup
            Serial.print("lampu 2 hidup");
            } 
            else if(sms.indexOf("LAMPU 2 OFF") >= 0) {
            digitalWrite(lampu2, HIGH);// lampu 2 mati
            Serial.print("lampu 2 mati");
            } 
            else if(sms.indexOf("SEMUA ON") >= 0) {
            digitalWrite(lampu1, LOW);// lampu 1 & 2 hidup
            digitalWrite(lampu2, LOW);
            Serial.print("lampu 1 & 2 hidup");
            }
            else if(sms.indexOf("SEMUA OFF") >= 0) {
            digitalWrite(lampu1, HIGH);// lampu 1 & 2 mati
            digitalWrite(lampu2, HIGH);
            Serial.print("lampu 1 & 2 mati");
            }  
            abak = false;
          }
          
        }
        
        for( int i = 0; i < sizeof(text);  ++i ) {
         text[i] = (char)0;
        }
        amak = 0;
    } else {
      text[amak++] = lastCharRead;
    }
  }
}

Cara kerja dari program diatas silahkan kirim sms "LAMPU 1 ON" untuk mengaktifkan lampu 1 "LAMPU 1 OFF" untuk mematikannya, selanjutnya "LAMPU2 ON" untuk mengaktifkan lampu 2 "LAMPU 2 OFF" untuk mematikan lampu 2, "SEMUA ON" untuk menghidupkan lampu 1 & 2, dan "SEMUA OFF" untuk mematikan lampu 1 & 2.

Bagi rekan - rekan yang masih belum mengerti atau terkendala dengan program silahkan komentar dibawah atau mgkin kita bisa saling sering dan belajar tentang mikrocontroler & robotika.

Share:

Senin, 12 Februari 2018

Sensor Ph dengan Arduino

Sensor Ph berfungsi untuk mengukur ph air dan bisa di aplikasikan untuk mengetahui apakah air layak untuk dikonsumsi atau tidak.
Pada kesempatan kali ini saya akan mencoba memberikan tutorial menggunakan sensor Ph engan arduino silahkan persiapkan bahannya seperti dibawah ini:
  1. Sensor Ph
  2. Arduino Mega(Tidak harus arduino mega)
  3. Lcd 16x2
Rangkaian nya di bikin kayak gambar yang dibawah ini aja:

 Setelah rekan rangkai seperti yang diatas upload program di bawah ini:

#include <LiquidCrystal.h>
LiquidCrystal lcd(0, 1, 2, 3, 4, 5);

const int analogInPin = A0;
unsigned long int avgValue;
int buf[10],temp;

void setup() {
 lcd.begin(16, 2);
 lcd.clear();
}

void loop() {
 for(int a=0;a<10;a++)
 {
  buf[a]=analogRead(analogInPin);
  delay(10);
 }
 for(int a=0;a<9;a++)
 {
  for(int j=a+1;j<10;j++)
  {
   if(buf[a]>buf[j])
   {
    temp=buf[a];
    buf[a]=buf[j];
    buf[j]=temp;
   }
  }
 }
 avgValue=0;
 for(int a=2;a<8;a++)
 avgValue+=buf[a];
 float pHVol=(float)avgValue*2.0/1024;
 float phValue = 4.20 * pHVol - 21.34;
 lcd.setCursor(0,0);
 lcd.print("BINTANG ROBOTIKA");
 lcd.setCursor(0,1);
 lcd.print("  pH =  ");
 lcd.println(phValue);
 lcd.setCursor(12,1);
 lcd.print("   ");
 delay(500);
}

Untuk program diatas rekan jangan gunakan Serial begin pada void setup() nanti lcdnya tidak bisa tampil, karna lcd untuk pin rs dan e menggunakan pin 0 & 1 yaitu pin serial 0 pada arduino
cara kerjanya nanti akan tampil pada lcd nilai pH yg sudah di kalibrasikan sinyal analognya,
sekian dari saya terima kasih, semoga bermanfaat.
Share:

Minggu, 11 Februari 2018

Voice recognition V3 dan Arduino Mega

Voice Recognition v3 adalah sebuah modul yang bisa mengontrol perangkat dengan menggunakan suara. Dengan cara memasukan atau merekam suara ke dalam voice itu sendiri.
Untuk lebih lengkapnya rekan-rekan bisa baca sendiri pada datasheet voice recognition v3 itu sendiri. 

Langsung aja persiapkan komponen-komponen yang dibutuhkan
  • 1 buah voice recognition v3 
  • 1 buah arduino, untuk arduino terserah mau pake yang mana kali ini saya menggunakan arduino mega soalnya jarang sekali tutorial tentang voice menggunakan arduino mega.
  • 2 buah led dan resistor 220 ohm.
 Dan rangkailah seperti gambar dibawah ini:


Rangkain voice recognition V3 dengan arduino

Selanjutnya buka arduino IDE dan buka library voice v3 nya, bagi yang belum punya download dulu librarynya di https://github.com/elechouse/VoiceRecognitionV3.


Selanjutnya ganti pin 2 dan 3 menjadi pin 12 dan 13 seperti gambar dibawah ini:

Silahkan upload ke arduino dan buka serial monitor seperti gambar dibawah ini:


  Rubah baudrate menjadi 115200, untuk mengisi suaranya silahkan ketikan pada kolom atasnya 
  • sigtrain 1 led1on ( untuk led1on terserah rekan maunya menuliskan apa) usahakan kata" jangan terlalu panjang
  • sigtrain 2 led2on
  • sigtrain 3 led1off
  • sigtrain 4 led2off
  • sigtrain 5 ledoff
setelah selesai memasukan suara kita akan mengontrol 2 buah led menggunakan suara untuk on dan off nya silahkan upload progam yang dibawah ini:

#include <SoftwareSerial.h>
#include "VoiceRecognitionV3.h"

VR myVR(12,13);  
uint8_t records[7];
uint8_t buf[64];

int led1 = 10;
int led1 = 11;

#define led1on   (1)
#define led2on   (2)
#define led1off  (3)
#define led2off  (4)
#define ledoff   (5)

void printSignature(uint8_t *buf, int len)
{
  int i;
  for(i=0; i<len; i++){
    if(buf[i]>0x19 && buf[i]<0x7F){
      Serial.write(buf[i]);
    }
    else{
      Serial.print("[");
      Serial.print(buf[i], HEX);
      Serial.print("]");
    }
  }
}

void printVR(uint8_t *buf)
{
  Serial.println("VR Index\tGroup\tRecordNum\tSignature");

  Serial.print(buf[2], DEC);
  Serial.print("\t\t");

  if(buf[0] == 0xFF){
    Serial.print("NONE");
  }
  else if(buf[0]&0x80){
    Serial.print("UG ");
    Serial.print(buf[0]&(~0x80), DEC);
  }
  else{
    Serial.print("SG ");
    Serial.print(buf[0], DEC);
  }
  Serial.print("\t");

  Serial.print(buf[1], DEC);
  Serial.print("\t\t");
  if(buf[3]>0){
    printSignature(buf+4, buf[3]);
  }
  else{
    Serial.print("NONE");
  }
  Serial.println("\r\n");
}

void setup()
{
  myVR.begin(9600);
  Serial.begin(115200);
  Serial.println("Elechouse Voice Recognition V3 Module\r\nControl LED sample");
 
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  
  if(myVR.clear() == 0){
    Serial.println("Recognizer cleared.");
  }else{
    Serial.println("Not find VoiceRecognitionModule.");
    Serial.println("Please check connection and restart Arduino.");
    while(1);
  }
 
  if(myVR.load((uint8_t)led1on) >= 0){
    Serial.println("onRecord led1");
  }
 
  if(myVR.load((uint8_t)led2on) >= 0){
    Serial.println("onRecord led2");
  }

   if(myVR.load((uint8_t)led1off) >= 0){
    Serial.println("offRecord led1");
  }
 
  if(myVR.load((uint8_t)led2off) >= 0){
    Serial.println("offRecord led2");
  }

   if(myVR.load((uint8_t)ledoff) >= 0){
    Serial.println("off led 1 & 2");
  }
 
}

void loop()
{
  int ret;
  ret = myVR.recognize(buf, 50);
  if(ret>0){
    switch(buf[1]){
      case led1on:
        digitalWrite(led1, HIGH);
        break;
      case led2on:
        digitalWrite(led2, HIGH);
        break;
      case led1off:
        digitalWrite(led1, LOW);
        break;
      case led2off:
        digitalWrite(led2, LOW);
        break;
      case ledoff:
        digitalWrite(led1, LOW);
        digitalWrite(led2, LOW);
        break;
      default:
        Serial.println("Record function undefined");
        break;
    }
    printVR(buf);
  }
}

Silahkan upload programnya ke arduino
keterangan kerjanya silahkan gunakan
  • led1on untuk mengaktifkan led 1
  • led2on untuk mengaktifkan led 2
  • led1off untuk mematikan led 1
  • led2off untuk mematikan led 2
  • ledoff untuk mematikan led 1 & led 2
 bagi teman yang masih belum mengerti, kurang paham silahkan komentar di bawah atau kita bisa saling shering dan berbagi ilmu pengetahuan.
Share:

BTemplates.com


zulpandru hendra. Diberdayakan oleh Blogger.