Menampilkan Gambar atau ICON pada display LCD OLED SSD1306

10:13 AM Comment

 


Cara menampilkan gambar atau ICON pada display OLED SSD1306


Warna yang dapat ditampilkan pada layar OLED SSD 1306 hanya hitam putih saja, dengan begitu supaya tampilan lebih berkesan keren maka dapat kalian tampilkan gambar atau icon pada display, caranya cukup mudah yaitu yang perlu disiapkan pertama :

  • NodeMCU (bisa juga menggunakan arduino)
  • Modul OLED SSD1306
  • Kabel Jumper
  • Icon yang akan ditampilkan
  • Image to C++

Setelah semua disiapkan selanjutnya pemasangan kabel Node MCU dengan modul OLED SSD 1306

Cara menampilkan gambar atau ICON pada display OLED SSD1306


Berikutnya instal library pada aplikasi Arduino iDE untuk mengakses OLED


Siapkan gambar atau icon yang ingin kalian tampilkan pada OLED 1306

Untuk gambar atau incon yang akan digunakan usahakan berformat .png dan memiliki warna utama putih, kemudian konversi gambar atau icon secara inline di  https://javl.github.io/image2cpp/

Setelah membuka web konversi kalian pilih gambar yang akan di konversi dengan klik pilih gambar kemudian setting canvas untuk ukuran pixel gambar atau icon yang akan ditampilkan pada OLED

Bagian Background color pilih pada opsi black. Lanjut ke bagian scalling  pilih scale to fit, keeping proportions. Setelah melakukan setting, maka akan muncul gambar privew nya

Selanjutnya Pada Code output format pilih Arduino Code. Pada identifier silahkan disesuaikan (disini myBitmap saya ganti menjadi wifiIcon). Terakhir klik tombol generate code dan akan muncul kode dari icondan kode tersebut salin ke project arduino ide kalian




Hasil program pada arduino ide seperti dibawah ini


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire);

const unsigned char wifiIcon [] PROGMEM = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x07, 0xff, 0xe0, 0x00, 0x00, 0x7f, 
  0xff, 0xfe, 0x00, 0x01, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 
  0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xfc, 0x00, 0x3f, 0xfe, 0xff, 0xe0, 0x00, 0x07, 
  0xff, 0xff, 0x87, 0xff, 0xe1, 0xff, 0x7f, 0x1f, 0xff, 0xf8, 0xff, 0x7e, 0x7f, 0xff, 0xfe, 0x7e, 
  0x3c, 0xff, 0xff, 0xff, 0x3c, 0x01, 0xff, 0xff, 0xff, 0x80, 0x03, 0xff, 0xe7, 0xff, 0xc0, 0x03, 
  0xfe, 0x00, 0x3f, 0xe0, 0x03, 0xf8, 0x7e, 0x1f, 0xc0, 0x01, 0xe3, 0xff, 0xc7, 0x80, 0x00, 0xc7, 
  0xff, 0xe3, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 
  0xf8, 0x00, 0x00, 0x0f, 0xc3, 0xf0, 0x00, 0x00, 0x07, 0x81, 0xe0, 0x00, 0x00, 0x03, 0x3c, 0xc0, 
  0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 
  0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 
  0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

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

  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); 
  }
  
  // just intro
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(1);
  display.setCursor(38,20);  display.println(F("ARDUCODING"));
  display.setCursor(39,35);  display.println(F("TEST ICON"));
  display.display(); //tampilkan data
  delay(3000); 
  display.clearDisplay(); //clear sebelum tampilan baru
  display.drawBitmap(44, 15, wifiIcon, 40, 40, WHITE); 
  display.display(); //tampilkan data
}

void loop() {
}

Membuat Sensor Parkir di Garasi Mobil dengan Indikator Led Strip

11:16 AM Comment

 

Membuat Sensor Parkir di Garasi Mobil dengan Indikator Led Strip

Pada artikel kali ini akan membuat sensor parkir pada garasi mobil. Sensor parkir ini menggunakan sensor ultrasonic dan dengan lampu led strip 5v merah sebagai indikator bahwa mobil sudah mendekati tembok, cara membuatnya yaitu cukup mudah, pertama bahan yang disediakan yaitu :

  • Arduino uno
  • Sensor ultrasonic HC-SR04
  • Lampu led strip 5v merah
  • Adaptor 5v

Untuk rangkaiannya dapat kalian lihat dibawah ini

Membuat Sensor Parkir di Garasi Mobil dengan Indikator Led Strip

Keterangan :

  • Pin gnd pada sensor ultrasonic dan salah satu pin untuk led strip gubungkan ke gnd pada arduino
  • Pin VCC pada sensor ultrasonic hubungkan ke pin 5v pada arduino
  • Pin trig hubungkan ke pin 2 arduino
  • Pin echo hubungkan ke pin 3 arduino
  • Salah satu pin untuk led strip hubungkan ke pin 4 arduino
  • Selanjutnya memprogram arduino
  • Copy program dibawah ini dan pastekan ke project arduino ide kalian
[Program]

const int triggerPin = 2;
const int echoPin = 3;
const int LED1 = 4;

long durasi;
int jarak;

void setup() {
pinMode(triggerPin, OUTPUT); 
pinMode(LED1, OUTPUT); 
pinMode(echoPin, INPUT);
  
Serial.begin(9600); 
}

void loop() {
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  durasi = pulseIn(echoPin, HIGH);
  jarak = durasi*0.034/2;
  
  if(jarak <= 20){
    Serial.println("Jarak kurang dari 20cm");
    digitalWrite(LED1, HIGH);
  }else{
    Serial.println("Jarak lebih dari 20cm");
    digitalWrite(LED1, LOW);
  }
}
  • Selanjutnya upload dan ubah jarak yang ada pada program atau yang diberi warna merah sesuai jarak yang kalian inginkan
  • Led akan hidup jika mendeteksi objek dengan jarak kurang dari sama dengan 20cm
  • jarak objek melebihi 20cm led akan mati

Program Cara Kalibrasi Sensor Warna dengan Arduino UNO

10:24 AM Comment

 

Program Cara Kalibrasi Sensor Warna dengan Arduino UNO

Pada artikel kali ini akan membahas tentang kalibrasi sensor warna TCS 3200, sensor warna TCS 3200 terkadang perlu dikalibrasi supaya mendeteksi warna dengan akurat, untuk pemasangan sensor warna ke arduino dapat dilihat pada artikel sebelumnya atau klik disini.

  • Untuk kalibrasi sensor warna kalian copy program dibawah ini dan pastekan ke arduino ide kalian kemudian upload
[program kalibrasi]

int frequency = 0; 
 
void setup() {
  pinMode(S0, OUTPUT); 
  pinMode(S1, OUTPUT); 
  pinMode(S2, OUTPUT); 
  pinMode(S3, OUTPUT); 
  pinMode(sensorOut, INPUT); 

  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  Serial.begin(9600);
}
void loop() {

  //baca merah
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("M= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 

  //baca hijau
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("H= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 
  //baca biru
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  Serial.print("B= ");
  Serial.print(frequency);
  Serial.println(" ");
  delay(100);
}
  • Pada serial monitor akan muncul nilai dari setiap warna yang terdeteksi
  • Catat seluruh nilai yang terdeteksi kemudian upload program sensor warna dibawah ini
[program sensor warna]

int frequency = 0; 
 
void setup() {
  pinMode(S0, OUTPUT); 
  pinMode(S1, OUTPUT); 
  pinMode(S2, OUTPUT); 
  pinMode(S3, OUTPUT); 
  pinMode(sensorOut, INPUT); 

  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);
  Serial.begin(9600);
}
void loop() {

  //baca merah
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, Nilai_minimal,Nilai_maksimal,255,0);
  Serial.print("M= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 

  //baca hijau
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, Nilai_minimal,Nilai_maksimal,255,0);
  Serial.print("H= ");
  Serial.print(frequency);
  Serial.print(" ");
  delay(100);
 
  //baca biru
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  frequency = pulseIn(sensorOut, LOW);
  frequency = map(frequency, Nilai_minimal,Nilai_maksimal,255,0);
  Serial.print("B= ");
  Serial.print(frequency);
  Serial.println(" ");
  delay(100);
}
  • Ganti nilai program pada bari void loop > frequency = map (frequency, nilai minimal, nilai maksimal, 255, 0); , atau baris program yang diberi warna merah.
  • Upload program sensor warna dan uji coba dengan mendekatkan warna ke sensor kemudian lihat hasilnya pada serial monitor

Itulah cara mengkalibrasi sensor warna dengan mudah, terimakasih dan selamat mencoba

program lengkap deteksi warna dengan arduino uno

5:50 PM Comment

 

Pada artikel ini akan dibahas bagaimana cara memprogram sensor warna TCS3200 dengan menggunakan arduino uno

Komponen yang disiapkan yaitu :

  • Arduino UNO
  • Sensor warna TCS3200
  • Kabel jumper secukupnya

Pertama rangkai sensor warna dengan arduino seperti dibawh ini

program lengkap deteksi warna dengan arduino uno

Keterangan :

  • Hubungkan pin VCC pada sensor ke pin 5V pada arduino
  • Hubungkan pin GND pada sensor ke pin GND pada arduino
  • Hubungkan pin S0 sensor ke pin 4 arduino
  • Hubungkan pin S1 sensor ke pin 5 arduino
  • Hubungkan pin S2 sensor ke pin 6 arduino
  • Hubungkan pin S3 sensor ke pin 7 arduino
  • Hubungkan pin Out sensor ke pin 8 arduino

Setelah semua sudah terhubung selanjutnya memasukkan program ke board arduino

  • Hubungkan arduino uno dengan kabel usb ke komputer
  • Buka aplikasi arduino ide
  • Pilih menu tools > board > arduino uno
  • Pilih menu tools lagi kemudian port > COM yang aktif
  • Copy program dibawah ini dan upload

[program]

#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define OutputSensor 8

int merah = 0;
int hijau = 0;
int biru = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);

  pinMode(OutputSensor, INPUT);

  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);
}

void loop()
{
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  merah = pulseIn(OutputSensor, LOW);
  Serial.print("R = ");
  Serial.println(merah);
  delay(250);

  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  hijau = pulseIn(OutputSensor, LOW);
  Serial.print("G = ");
  Serial.println(hijau);
  delay(250);

  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  biru = pulseIn(OutputSensor, LOW);
  Serial.print("B = ");
  Serial.println(biru);
  delay(250);
}

Setelah selesai terupload buka serial monitor dan uji coba dekatkan warna merah, hijau, dan biru secara bergantian, pada serial monitor akan muncul keterangan warna