Translate

Mengakses Slide Potensio Interface 7segment

 Mengakses Slide Potesio Interface 7segment


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagamana cara mengakses slide potensio dengan menggunakan arduino dengan interface 7segment, jadi ada nilai yg tertera di 7segment yang akan berubah sesuai kondisi dari posisi slide potensionya. jika  posisi dibawah maka nilai rendah lalu jika posisi diatas maka nilai tinggi. untuk lebih jelasnya berikut adalah koding dan daftar komponenya. 
       


a. Arduino Uno 


b. Slide Potensio


c. Interface 7Segment





d. Program Arduino IDE

#include <Wire.h>

byte zero  = B00000011;
byte one   = B10011111;
byte two   = B00100101;
byte three = B00001101;
byte four  = B10011001;
byte five  = B01001001;
byte six   = B01000001;
byte seven = B00011111;
byte eight = B00000001;
byte nine  = B00001001;

int latchPin = 4;  //Pin connected to STR(pin 1) of HEF4094
int clockPin = 3; //Pin connected to CLK(pin 3) of HEF4094
int dataPin = 2;  //Pin connected to D(pin 2) of HEF4094
int oe = 5;  //Pin connected to OE(pin 2) of HEF4094

int temp;
int x = 5;
int y;
int sensorValue;

void setup(){
 Serial.begin(9600);
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinMode(oe, OUTPUT);
 digitalWrite(oe,HIGH);
}

void loop(){
           
  sensorValue = analogRead(A0);
  //merubah adc ke volt
  float volt = sensorValue * (5.0/1023.0);
  int voltx = volt * 100;
  
  temp = voltx;
  int ribuan = temp / 1000;
  temp = temp % 1000;
  int ratusan = temp / 100;
  temp = temp % 100;
  int puluhan = temp / 10;
  int satuan = temp % 10;

 switch(ratusan){
   case 0:
   ratusan = zero;
   break;
   case 1:
   ratusan = one;
   break;
   case 2:
   ratusan = two;
   break;
   case 3:
   ratusan = three;
   break;
   case 4:
   ratusan = four;
   break;
   case 5:
   ratusan = five;
   break;
   case 6:
   ratusan = six;
   break;
   case 7:
   ratusan = seven;
   break;
   case 8:
   ratusan = eight;
   break;
   case 9:
   ratusan = nine;
   break;  
 }
  
 switch(puluhan){
   case 0:
   puluhan = zero;
   break;
   case 1:
   puluhan = one;
   break;
   case 2:
   puluhan = two;
   break;
   case 3:
   puluhan = three;
   break;
   case 4:
   puluhan = four;
   break;
   case 5:
   puluhan = five;
   break;
   case 6:
   puluhan = six;
   break;
   case 7:
   puluhan = seven;
   break;
   case 8:
   puluhan = eight;
   break;
   case 9:
   puluhan = nine;
   break;  
 }

 switch(satuan){
   case 0:
   satuan = zero;
   break;
   case 1:
   satuan = one;
   break;
   case 2:
   satuan = two;
   break;
   case 3:
   satuan = three;
   break;
   case 4:
   satuan = four;
   break;
   case 5:
   satuan = five;
   break;
   case 6:
   satuan = six;
   break;
   case 7:
   satuan = seven;
   break;
   case 8:
   satuan = eight;
   break;
   case 9:
   satuan = nine;
   break; 
 }

  digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
  shiftOut(dataPin, clockPin, LSBFIRST, satuan);
  shiftOut(dataPin, clockPin, LSBFIRST, puluhan);
  shiftOut(dataPin, clockPin, LSBFIRST, ratusan);
  digitalWrite(latchPin, LOW); //Pull latch HIGH to send data
  delay(1000);
  
 }

   


e.  VIDEO HASILNYA





Monitor Gas / Asap MQ-2 Interface 7Segment ARDUINO

 Monitor Gas / Asap MQ-2 Interface 7Segment ARDUINO

           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor asap atau gas yang dimonitor menggunakan interface 7Segment. alat ini menggunakan arduino sebagai kontrollernya. alat ini menggunakan sensor MQ-2 dengan output berupa tegangan. untuk penjelasan lebih lanjut berikut adalah komponen dan programnya.  



a. Arduino Uno



b. Driver 7Segment



c. Sensor Gas MQ-2





d. Program Arduino IDE

#include <Wire.h>

byte zero  = B00000011;
byte one   = B10011111;
byte two   = B00100101;
byte three = B00001101;
byte four  = B10011001;
byte five  = B01001001;
byte six   = B01000001;
byte seven = B00011111;
byte eight = B00000001;
byte nine  = B00001001;

byte zerox  = B00000010;
byte onex   = B10011110;
byte twox   = B00100100;
byte threex = B00001100;
byte fourx  = B10011000;
byte fivex  = B01001000;
byte sixx   = B01000000;
byte sevenx = B00011110;
byte eightx = B00000000;
byte ninex  = B00001000;

int latchPin = 4;  //Pin connected to STR(pin 1) of HEF4094
int clockPin = 3; //Pin connected to CLK(pin 3) of HEF4094
int dataPin = 2;  //Pin connected to D(pin 2) of HEF4094
int oe = 5;  //Pin connected to OE(pin 2) of HEF4094

int temp;
int x = 5;
int y;

int sensorValue;

void setup(){
 Serial.begin(9600);
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinMode(oe, OUTPUT);
 digitalWrite(oe,HIGH);
}

void loop(){
           
  sensorValue = analogRead(A0);
  float volt = sensorValue * (5.0/1023.0);
  int voltx = volt * 100;
  
  temp = voltx;
  int ribuan = temp / 1000;
  temp = temp % 1000;
  int ratusan = temp / 100;
  temp = temp % 100;
  int puluhan = temp / 10;
  int satuan = temp % 10;

 switch(ratusan){
   case 0:
   ratusan = zerox;
   break;
   case 1:
   ratusan = onex;
   break;
   case 2:
   ratusan = twox;
   break;
   case 3:
   ratusan = threex;
   break;
   case 4:
   ratusan = fourx;
   break;
   case 5:
   ratusan = fivex;
   break;
   case 6:
   ratusan = sixx;
   break;
   case 7:
   ratusan = sevenx;
   break;
   case 8:
   ratusan = eightx;
   break;
   case 9:
   ratusan = ninex;
   break;  
 }
  
 switch(puluhan){
   case 0:
   puluhan = zero;
   break;
   case 1:
   puluhan = one;
   break;
   case 2:
   puluhan = two;
   break;
   case 3:
   puluhan = three;
   break;
   case 4:
   puluhan = four;
   break;
   case 5:
   puluhan = five;
   break;
   case 6:
   puluhan = six;
   break;
   case 7:
   puluhan = seven;
   break;
   case 8:
   puluhan = eight;
   break;
   case 9:
   puluhan = nine;
   break;  
 }

 switch(satuan){
   case 0:
   satuan = zero;
   break;
   case 1:
   satuan = one;
   break;
   case 2:
   satuan = two;
   break;
   case 3:
   satuan = three;
   break;
   case 4:
   satuan = four;
   break;
   case 5:
   satuan = five;
   break;
   case 6:
   satuan = six;
   break;
   case 7:
   satuan = seven;
   break;
   case 8:
   satuan = eight;
   break;
   case 9:
   satuan = nine;
   break; 
 }

  digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
  shiftOut(dataPin, clockPin, LSBFIRST, satuan);
  shiftOut(dataPin, clockPin, LSBFIRST, puluhan);
  shiftOut(dataPin, clockPin, LSBFIRST, ratusan);
  digitalWrite(latchPin, LOW); //Pull latch HIGH to send data
  delay(1000);
  
 }
   


e. VIDEO HASILNYA





Monitor Suhu Non-Contact Penampil 7Segment MLX90614 ARDUINO

 Monitor Suhu Non-Contact Penampil 7Segment MLX90614 ARDUINO


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengukur suhu suatu benda ataupun suhu manusia. alat ini dilengkapi dengan penampil 7segment sehingga lebih mudah dalam membaca nilainya. sensor yang digunakan adalah mlx90614. untuk lebih jelasnya berikut adalah komponen dan programnya.



a. Arduino Uno




b. Sensor MLX90614




c. Rangkaian Driver 7Segment






d. Program Arduino IDE

#include <Wire.h>
#include <Adafruit_MLX90614.h>

byte zero  = B00000011;
byte one   = B10011111;
byte two   = B00100101;
byte three = B00001101;
byte four  = B10011001;
byte five  = B01001001;
byte six   = B01000001;
byte seven = B00011111;
byte eight = B00000001;
byte nine  = B00001001;

//menampilkan titik
byte zerox  = B00000010;
byte onex   = B10011110;
byte twox   = B00100100;
byte threex = B00001100;
byte fourx  = B10011000;
byte fivex  = B01001000;
byte sixx   = B01000000;
byte sevenx = B00011110;
byte eightx = B00000000;
byte ninex  = B00001000;

int latchPin = 4;  //Pin connected to STR(pin 1) of HEF4094
int clockPin = 3; //Pin connected to CLK(pin 3) of HEF4094
int dataPin = 2;  //Pin connected to D(pin 2) of HEF4094
int oe = 5;  //Pin connected to OE(pin 2) of HEF4094

int temp;
int x = 5;
int y;

int sensorValue;

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

float TargetC;

void setup(){
 mlx.begin();
 Serial.begin(9600);
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinMode(oe, OUTPUT);
 digitalWrite(oe,HIGH);
}

void loop(){
           
  TargetC = mlx.readObjectTempC();
  sensorValue = TargetC * 10;
  
  Serial.print(TargetC);

 temp = sensorValue;
  int ribuan = temp / 1000;
  temp = temp % 1000;
  int ratusan = temp / 100;
  temp = temp % 100;
  int puluhan = temp / 10;
  int satuan = temp % 10;

 switch(ratusan){
   case 0:
   ratusan = zero;
   break;
   case 1:
   ratusan = one;
   break;
   case 2:
   ratusan = two;
   break;
   case 3:
   ratusan = three;
   break;
   case 4:
   ratusan = four;
   break;
   case 5:
   ratusan = five;
   break;
   case 6:
   ratusan = six;
   break;
   case 7:
   ratusan = seven;
   break;
   case 8:
   ratusan = eight;
   break;
   case 9:
   ratusan = nine;
   break;  
 }

 switch(puluhan){
   case 0:
   puluhan = zerox;
   break;
   case 1:
   puluhan = onex;
   break;
   case 2:
   puluhan = twox;
   break;
   case 3:
   puluhan = threex;
   break;
   case 4:
   puluhan = fourx;
   break;
   case 5:
   puluhan = fivex;
   break;
   case 6:
   puluhan = sixx;
   break;
   case 7:
   puluhan = sevenx;
   break;
   case 8:
   puluhan = eightx;
   break;
   case 9:
   puluhan = ninex;
   break;  
 }

 switch(satuan){
   case 0:
   satuan = zero;
   break;
   case 1:
   satuan = one;
   break;
   case 2:
   satuan = two;
   break;
   case 3:
   satuan = three;
   break;
   case 4:
   satuan = four;
   break;
   case 5:
   satuan = five;
   break;
   case 6:
   satuan = six;
   break;
   case 7:
   satuan = seven;
   break;
   case 8:
   satuan = eight;
   break;
   case 9:
   satuan = nine;
   break; 
 }

  digitalWrite(latchPin, HIGH); //Pull latch HIGH to send data
  shiftOut(dataPin, clockPin, LSBFIRST, satuan);
  shiftOut(dataPin, clockPin, LSBFIRST, puluhan);
  shiftOut(dataPin, clockPin, LSBFIRST, ratusan);
  digitalWrite(latchPin, LOW); //Pull latch HIGH to send data
  delay(1000);
  
 }
   



e. VIDEO HASILNYA





Tutorial Membuat Skematik dan Board PCB Menggunakan Software EAGLE

 Tutorial Membuat Skematik dan Board PCB Menggunakan Software EAGLE

           Pada kesempatan kali ini saya akan memberikan tutorial didalam menggunakan software Eagle untuk membuat minimum system, driver 7segment dan rangkaian non inverting amplifier. Disini sengaja menggunakan tiga topik tersebut dikarenakan ada beberapa langkah yang harus diperhatikan didalam menggunakan tools. untuk lebih jelasnya berikut adalah video tutorialnya.

 

a. VIDEO TUTORIAL MEMBUAT MINSIS


 

b. VIDEO TUTORIAL MEMBUAT DRIVER 7 SEGMENT


 

C. VIDEO TUTORIAL MEMBUAT RANGKAIAN NON INVERTING AMPLIFIER



 

 

 

Monitor Suhu Tubuh Non-Contact Arduino Sensor MLX90614

 Monitor Suhu Tubuh Non-Contact Arduino Sensor MLX90614


          Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengukur suhu tubuh manusia secara non-contact dengan menggunakan sensor MLX90614. alat ini berbasis Arduino sehingga mudah untuk diaplikasikan. untuk lebih jelasnya berikut adalah daftar komponen dan kodingnya.



a. Arduino UNO




b. Sensor MLX90614





c. Program Arduino IDE

#include <Wire.h>
#include <Adafruit_MLX90614.h>

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

float TargetC;

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

void loop(){
           
  TargetC = mlx.readObjectTempC();

  Serial.println(TargetC);
  
  delay(200); 
 }
   



d. VIDEO HASILNYA








Monitor PH dan SUHU serta Turbidity ONLINE BLYNK

 Monitor PH dan SUHU serta Turbidity ONLINE BLYNK


            Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yg bisa digunakan untuk memonitor PH dan suhu serta TDS dalam satu alat secara online dengan aplikasi Blynk, alat ini bisa memonitor secara jarak jauh karena menggunakan media komunikasi internet. untuk lebih jelasnya berikut adalah koding dan daftar komponenya.



a. Arduino Uno




b. Wemos D1 Mini




c. Sensor PH + Ampli




d. Sensor TDS




e. Suhu





f. Program Arduino IDE

#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
#define ONE_WIRE_BUS 5
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
LiquidCrystal_I2C lcd(0x27,16,2);

float TempC;
float pHValue;
//deklarasi pin analog
float ntu;
int adc;
int adcPH;
int TempCx;
int pHValuex;
int ntux;
float ntufix;

void setup(){  
Wire.begin();  
sensors.begin();
Serial.begin(9600);
lcd.begin();  
lcd.clear(); 
}

void loop(){

adc = analogRead(A1);             
ntu = (adc - 912.5)/-0.279;
ntux = ntu*100.0;
ntufix = ntux/100.0;

adcPH = analogRead(A0); //menggunakan pin A0 untuk membaca output sensor pH
pHValue = (adcPH-762.19)/ -33.961;

pHValuex = pHValue * 100.0;
 
 sensors.requestTemperatures();
 TempC = sensors.getTempCByIndex(0); // Celcius
 TempCx =  TempC * 100.0;

  lcd.setCursor(0,1);
  lcd.print("NTU= ");
  lcd.print(ntufix,1);
  lcd.print("  ");
  
  lcd.setCursor(8,0);
  lcd.print("T:");
  lcd.print(TempC,1);
  lcd.print("C");
  lcd.setCursor(0,0);
  lcd.print("PH:");
  lcd.print(pHValue,2);
  lcd.print("  ");
  
  Serial.print("*");
  Serial.print(ntux);
  Serial.print(",");
  Serial.print(pHValuex);
  Serial.print(",");
  Serial.print(TempCx);
  Serial.println("#");
  
  delay(900);
}



g. Program Wemos D1

#define  BLYNK_PRINT Serial  
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>

float TempC = 0;
float pHValue = 0;
float ntu = 0;

int datain1;
int datain2;
int datain3;

String dataIn;
String dt[10];
int i;
boolean parsing=false;

char auth[ ] = "yjhgjhgj78676hhgjhvjhvhgjh876jhgjkjh7";
char ssid[ ] = "myHotspotku";
char pass[ ] = "1123456789";

SimpleTimer timer;

void sendSensor()
{
 Blynk.virtualWrite(V2, pHValue);
 Blynk.virtualWrite(V3, ntu);
 Blynk.virtualWrite(V4, TempC);
 delay(1000);
}

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


  dataIn=""; 

 Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
 
}

void loop(){

if( Serial.available()>0) {
    
    char inChar = Serial.read();
    dataIn += inChar;
    if (inChar == '\n') {
    parsing = true;
  }
}

if(parsing){
  parsingData();
  parsing=false;
  dataIn="";
    
  Blynk.run();
  timer.run();
}

}

void parsingData(){
  
int j=0;

//kirim data yang telah diterima sebelumnya
Serial.print("data masuk :");
Serial.print(dataIn);

//inisialisasi variabel, (reset isi variabel)
dt[j]="";
//proses parsing data
for(i=1;i<dataIn.length();i++){
//pengecekan tiap karakter dengan karakter (#) dan (,)
if ((dataIn[i] == '#') || (dataIn[i] == ','))
{
//increment variabel j, digunakan untuk merubah index array penampung
j++;
dt[j]="";       //inisialisasi variabel array dt[j]
}
else
{
//proses tampung data saat pengecekan karakter selesai.
dt[j] = dt[j] + dataIn[i];
}
}

datain1 = dt[0].toInt();
datain2 = dt[1].toInt();
datain3 = dt[2].toInt();

ntu = datain1 / 100.0;
pHValue = datain2 / 100.0;
TempC =datain3 / 100.0;
 
//kirim data hasil parsing
Serial.print("data 1 : ");
 Serial.println(datain1);
Serial.print("data 2 : ");
Serial.println(datain2);
Serial.print("data 3 : ");
Serial.println(datain3);
 Serial.print("\n\n");

}




h. VIDEO HASILNYA


 



Kendali Pagar / Motor Stepper tomatis berbasis Sensor Jarak / Proximity dan sensor Wireless Key

 Kendali Pagar / Motor Stepper tomatis berbasis Sensor Jarak / Proximity dan sensor Wireless Key

            Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang digunakan untuk buka tutup gerbang atau pintu dengan menggunakan arduino dan motor stepper, alat ini dilengkapi dengan sensor proximity atau jarak dan sensor wireless key. untuk lebih jelasnya berikut koding dan daftar komponennya.


a. Arduino Mega




b. Motor Stepper




c. Sensor No Touch




d. Sensor Wireless Key







e. Program Arduino IDE

#define dirPin 2
#define stepPin 3

#define dir2 4
#define step2 5
int Tbremot = 8;
int gerak  = 7 ;
int tutup = 6;
int remot;
int tombol1;
int tombol2;
int speedx = 100;
int speedxx = 0;
int limsw1 = 9;
int limsw2 = 10;
int button = 11;

int limsw1x = 2;
int limsw2x = 2;
int buttonx;
int tanda;

void setup() {
  // Declare pins as output:
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(step2, OUTPUT);
  pinMode(dir2, OUTPUT);
  pinMode(gerak,INPUT_PULLUP);
  pinMode(tutup,INPUT_PULLUP);
  pinMode(Tbremot,INPUT_PULLUP);
  pinMode(limsw1,INPUT_PULLUP); //hijau
  pinMode(limsw2,INPUT_PULLUP); //biru
  pinMode(button,INPUT_PULLUP);
//  Serial.begin(9600);
 
  // Set the spinning direction CW/CCW:
}
void loop() {

    tombol1 = digitalRead(gerak);
    tombol2 = digitalRead(tutup); 
    buttonx = digitalRead(button);

if(buttonx == 0){
  tanda = 1;
 }  
if(buttonx == 1){
  tanda = 0;
 }
    
//cw
if((tombol1 == 0)&&(tanda == 0)){
  digitalWrite(dirPin, HIGH);
  digitalWrite(dir2, LOW);
  
  digitalWrite(stepPin, HIGH);
  digitalWrite(step2, LOW);
   delayMicroseconds(speedx);
   digitalWrite(stepPin, LOW);
    digitalWrite(step2, HIGH);
    delayMicroseconds(speedx);
}

//ccw
if((tombol2 == 0)&&(tanda == 0)){
  digitalWrite(dirPin, LOW);
  digitalWrite(dir2, HIGH);
  digitalWrite(stepPin, LOW);
  digitalWrite(step2, HIGH);
  delayMicroseconds(speedx);
  digitalWrite(stepPin, HIGH);
  digitalWrite(step2, LOW);
  delayMicroseconds(speedx);
}

remot = digitalRead(Tbremot);
//gerak buka
if((remot == 0)&&(tanda == 1)){
delay(200);
gerakbuka();
}

remot = digitalRead(Tbremot);
//gerak tutup
if((remot == 1)&&(tanda == 1)){
delay(200);  
geraktutup();
}

}

void gerakbuka(){
limsw1x = digitalRead(limsw1);
limsw2x = digitalRead(limsw2);
buttonx = digitalRead(button);

if(buttonx == 0){
  tanda = 1;
}
 
if((limsw1x == 0)&&(limsw2x == 1)){
delay(200);
return;
}

  digitalWrite(dirPin, HIGH);
  digitalWrite(dir2, LOW);
  digitalWrite(stepPin, HIGH);
  digitalWrite(step2, LOW);
  delayMicroseconds(speedx);
  digitalWrite(stepPin, LOW);
  digitalWrite(step2, HIGH);
  delayMicroseconds(speedx);
//  Serial.println("BUKA");
//  Serial.println(remot);
gerakbuka();  
}


void geraktutup(){
limsw1x = digitalRead(limsw1);
limsw2x = digitalRead(limsw2);
buttonx = digitalRead(button);

if(buttonx == 0){
  tanda = 1;
}
 
if((limsw1x == 1)&&(limsw2x == 0)){
delay(200);
return;
}

  digitalWrite(dirPin, LOW);
  digitalWrite(dir2, HIGH);  
  digitalWrite(stepPin, HIGH);
  digitalWrite(step2, LOW);
  delayMicroseconds(speedx);
  digitalWrite(stepPin, LOW);
  digitalWrite(step2, HIGH);
  delayMicroseconds(speedx);
//  Serial.println("TUTUP");
//  Serial.println(remot);
geraktutup();
}




f. VIDEO HASILNYA