Cara Memprogram Arduino - TUTORIAL UPLOAD VERIFY IMPORT LIBRARY SOFTWARE ARDUINO IDE
Pada kesempatan kali ini saya akan menjelaskan mengenai basic tutorial dalam memprogram board arduino, jadi akan dicontohkan mengenai bagaimana cara setting awal sebelum memprogram arduino dan juga cara upload yang benar menggunakan software Arduino IDE. Software Arduino IDE yang digunakan kali ini yaitu versi 1.0.5. disini juga dicontohkan mengenai bagaimana cara meletakkan library atau import library. untuk lebih jelasnya berikut penjelasan lengkapnya.
a. Setting Awal Arduino (Pilih Board dan Port)
b. Untuk Menguji Board Arduino Pilih File -> Example -> Basics -> Blink
c. Sehingga seperti berikut, untuk awalan pilih verify lalu upload
d. Untuk import libarary yaitu ekstrak file.rar lalu taruh di Document/Arduino/Libraries/
ARDUINO ALAT MONITOR JARAK DAN KECEPATAN MULTIPLE SENSOR HB100 DAN HC-SRF04 via BLUETOOTH INTERFACE HANDPHONE ANDROID
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk memantau kecepatan dan jarak menggunakan sensor HB100 dan HC-SRF04. alat ini menggunakan interface handphone android. jadi ada dua data yang dikirimkan dari arduino ke handphone android via bluetooth. untuk lebih jelasnya berikut adalah komponen dan programnya.
a. Arduino Uno
b. Sensor Kecepatan HB100
c. Sensor Jarak HC-SRF04
d. Modul Bluetooth HC-05
e. Program Arduino IDE
// Frequency input pin: 8 for ARDUINO UNO. Connect the IF pin from the preamp
// Frequency input pin: 49 for ARDUINO MEGA. Connect the IF pin from the preamp
void loop() {
if (FreqMeasure.available()) {
// average 30 readings together
sum = sum + FreqMeasure.read();
count = count + 1;
if (count > 30) {
frequency = FreqMeasure.countToFrequency(sum / count);
float spd = frequency / 19.49; //conversion from frequency to kilometers per hour
//to improve speed, we update only the bottom row of the LCD
// Serial.print("F= ");
// Serial.print(frequency);
// Serial.print("Hz ");
// Serial.print("SPD= ");
// Serial.print(spd);
// Serial.println("km/h");
freq = frequency;
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Membuat Power Supply / Adaptor Sendiri 12v / -12v / 5v / -5v dan GND
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat power supply atau adaptor yang bisa digunakan untuk power microcontroller atau arduino, adaptor ini juga bisa berfungsi untuk menjalankan alat selain microcontroller yang penting tegangan dan arusnya tidak melebihi batas saja. untuk lebih jelasnya berikut adalah skemanya.
Alat Deteksi Gas Alkohol Menggunakan Microcontroller ATMega32 BASCOM AVR
Pada kesempatan berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang berfungsi untuk mendeteksi kadar gas alkohol dengan satuan PPM. alat ini menggunakan sensor TGS2620 dan indikator berupa led dan buzzer. interface yang digunakan adalah LCD 16x2. untuk lebih jelasnya berikut adalah komponen dan programnya.
a. Minimum System ATMega32
b. LCD 16x2
c. Sensor Gas TGS2620
d. Program Bascom AVR
'tutorial kalibrasi cek link ini
'http://kursuselektronikaku.blogspot.com/2014/09/membuat-detektor-gas-lpg-liquified.html
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Dataadc As Word
Dim Gas_ref As Word
Dim Gas As Single
Dim Lpg As String * 5
Dim Vol As String * 5
Dim Tegangan As Single
Dim Teganganx As Single
Dim A As Single
Dim Vo As Single
Dim X As Single
Dim Y As Single
Dim Rs As Single
Dim D As Single
Dim E As Single
Dim Ppm As Single
Dim Ro As Single
Ddrd.7 = 1
Ddrd.4 = 1
Portd.7 = 0
Portd.4 = 0
Ddrb.0 = 1
Ddrb.1 = 1
Start Adc
Do
Gas_ref = Getadc(0) 'Nilai tegangan ADC dr out sensor
Gas = Gas_ref
Ro = 633750 'kadar Rs dalam udara bersih (ADC minimal)
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk memonitor kelembaban tanah, alat ini menggunakan arduino dan sensor soil moisture, kemudian interface menggunakan lcd 16x2. untuk lebih jelasnya berikut adalah komponen dan programnya
ARDUINO DETEKSI RGB WARNA MENGGUNAKAN SENSOR TCS3200
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk mendeteksi RGB warna sehingga akan tampak di LCD 16x2. alat ini cuma menampilkan nilai RGB saja. untuk lebih jelasnya berikut adalah komponen dan programnya.
void loop() { lcd.setCursor(0, 0); lcd.print("R G B ");
lcd.setCursor(0, 1); // Setting red filtered photodiodes to be read digitalWrite(S2,LOW); digitalWrite(S3,LOW); // Reading the output frequency frequencyr = pulseIn(sensorOut, LOW); // Printing the value on the serial monitor lcd.print(frequencyr);//printing RED color frequency lcd.print(" "); delay(100); // Setting Green filtered photodiodes to be read digitalWrite(S2,HIGH); digitalWrite(S3,HIGH); // Reading the output frequency frequencyg = pulseIn(sensorOut, LOW); // Printing the value on the serial monitor lcd.print(frequencyg);//printing RED color frequency lcd.print(" "); delay(100); // Setting Blue filtered photodiodes to be read digitalWrite(S2,LOW); digitalWrite(S3,HIGH); // Reading the output frequency frequencyb = pulseIn(sensorOut, LOW); // Printing the value on the serial monitor lcd.print(frequencyb);//printing RED color frequency lcd.println(" "); delay(100);
ARDUINO ETHERNET WEBSERVER TCP-IP MODULE ENC28J60 MONITORING ADC DAN KENDALI LED VIA BROWSER
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang bisa memonitoring ADC dan kendali LED dengan menggunakan browser via kabel LAN / modul tcp-ip ENC28J60. alat ini menggunakan arduino mega dan komunikasi dari arduino ke modul ENC28j60 menggunakan SPI (MOSI MISO SCK). untuk lebih jelasnya berikut adalah program dan daftar komponennya.
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
int sumbux = analogRead(0);
int sumbuy = analogRead(1);
int sumbuz = analogRead(2);
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 1");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println(" ");
client.println("<title> Monitor Kemiringan </title> ");
client.println("<body bgcolor = #000000>");
client.println("<center>");
client.println("<font color = yellow><center><h1>MONITOR KEMIRINGAN DATARAN<br>BY YANUAR MUKHAMMAD</h1></center><br></font>");
client.println("<font color = #FFFFFF>");
client.println("<h2>");
client.println("Sumbu X = ");
client.print(sumbux);
client.println("<br />");
client.println("Sumbu Y = ");
client.print(sumbuy);
client.println("<br />");
client.println("Sumbu Z = ");
client.print(sumbuz);
client.println("</h2>");
client.println("</font>");
client.println("<a href = \"/?lighton\"\"><input type = 'button' value = 'ON' ></a>");
client.println("<a href = \"/?lightoff\"\"><input type = 'button' value = 'OFF' ></a> ");
client.println("</center>");
client.println("</body>");
client.println("</html>");
Arduino Ethernet TCP-IP Modul ENC28J60 Interface VB 6.0
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses modul ethernet ENC28J60 dengan menggunakan arduino mega. koneksi dari modul ENC28J60 ke arduino menggunakan pin SPI yaitu mosi miso sck vcc gnd. menurut petunjuk vcc pada modul ENC28J60 yaitu 3.3 volt bukan 5v. untuk lebih jelasnya berikut adalah komponen dan programnya.
Option Explicit Dim sHari As String 'Deklarasi variabel global, karena digunakan Dim aHari 'oleh lebih dari satu prosedur Dim jam, menit, detik Dim iClientId As Integer
Private Sub cmd_Connect_Click()
On Error GoTo a
If Winsock.State <> sckClosed Then Winsock.Close Winsock.RemoteHost = Text_IP Winsock.RemotePort = Text_PORT Winsock.Connect
Exit Sub a: MsgBox "error: " & Err.Description, vbCritical, "Error"
End Sub
Private Sub cmd_Disconnect_Click() Winsock.Close sckAccept.Close MsgBox ("Koneksi dengan Server selesai") cmd_Connect.Enabled = True cmd_Disconnect.Enabled = False End Sub
Private Sub Command_Clear_Click() Text1.Text = "" End Sub
Private Sub Command1_Click() Unload Me End Sub
Private Sub Command2_Click() ' Get the client id from the Combobox
'iClientId = Split(Text_IP, " ")(1)
' Send data to client Winsock.SendData Text2.Text
' clear textbox 'txtSendData.Text = ""
End Sub
Private Sub Command3_Click() ' Get the client id from the Combobox
Private Sub Winsock_Connect() MsgBox ("terkoneksi dengan server") End Sub
Private Sub Winsock_ConnectionRequest(ByVal requestID As Long) Winsock.Accept requestID End Sub
Private Sub sckAccept_ConnectionRequest(ByVal requestID As Long) sckAccept.Accept requestID End Sub
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim buffer As String Dim temp As String Dim pisah() As String Dim i As Integer
Dim data As String data = "" Winsock.GetData data, vbString Text1.Text = Text1.Text & data & vbCr
buffer = data
pisah = Split(buffer, Chr$(13))
On Error Resume Next If buffer <> " " Then With Text5 .SelStart = Len(.Text) .SelText = buffer End With For i = 0 To 2 If 0 < 3 Then Text6(i).Text = CStr(pisah(i)) End If Next i Else buffer = " " End If
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengakses modul fingerprint dengan menggunakan arduino. jadi alat ini bisa mengidentifikasi jari yang didaftarkan pada sensor fingerprint. alat ini sangat tepat sekali untuk projek smart door lock atau project lainnya yang menggunakan fingerprint sebagai ID aksesnya. untuk lebih jelasnya berikut adalah komponen dan contoh programnya.
// set the data rate for the sensor serial port finger.begin(57600);
if (finger.verifyPassword()) { Serial.println("Found fingerprint sensor!"); } else { Serial.println("Did not find fingerprint sensor :("); while (1); } Serial.println("Waiting for valid finger..."); }
void loop() // run over and over again { getFingerprintIDez(); delay(50); //don't ned to run this at full speed. }
uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("No finger detected"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); return p; default: Serial.println("Unknown error"); return p; }
// OK success!
p = finger.image2Tz(); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; }
// OK converted! p = finger.fingerFastSearch(); if (p == FINGERPRINT_OK) { Serial.println("Found a print match!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Did not find a match"); return p; } else { Serial.println("Unknown error"); return p; }
// found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); }
// returns -1 if failed, otherwise returns ID # int getFingerprintIDez() { uint8_t p = finger.getImage(); if (p != FINGERPRINT_OK) return -1;
p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1;
p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1;
// found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence);
ARDUINO PARSING DATA UART SERIAL alat Monitor Kelembaban Tanah / Soil Moisture dan Potensio Slider WIRELESS HC-12 INTERFACE DELPHI 7
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk memonitor tegangan dari potensio slider dan kelembaban tanah / soil moisture dengan menggunakan Arduino. alat ini terdapat bagian master dan bagian slave jadi butuh 2 arduino sebagai master dan slave. komunikasi master - slave menggunakan wireless modul HC-12 dan menggunakan parsing data serial uart untuk memilah dua data yang dikirim oleh master kepada slave. untuk lebih jelasnya berikut adalah komponen dan programnya.
a. Arduino Uno
b. Sensor Kelembaban Tanah / Soil Moisture
c. Potensio Slider
d. Modul Wireless HC-12
e. LCD 20x4 + I2C
f. Program Arduino IDE Master
#include <Wire.h>
int dataadc1;
int dataadc2;
int maxval = 1023;
int minval = 0;
int minvalx = 0;
int maxvalx = 100;
int rawValue;
//kirim data yang telah diterima sebelumnya
//Serial.print("data masuk : ");
//Serial.print(dataIn);
//Serial.print("\n");
//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];
}
}
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
comport1.ShowSetupDialog;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if button2.Caption='Connect' then
begin
button2.Caption:='Disconnect';
comport1.Open;
timer2.Enabled := True;
end
else if button2.Caption='Disconnect' then
begin
button2.Caption:='Connect';
comport1.Close;
timer2.Enabled := False;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Color:=clwhite;
Edit2.Color:=clwhite;
edit1.text:='';
edit2.text:='';
memo1.Text:='';
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ThousandSeparator:=',';
DecimalSeparator:='.';
end;
procedure TForm1.Memo1Change(Sender: TObject);
var ruang,kulit:double;
rin,kin:string;
jumlahdata:integer;
begin
shape1.Brush.Color:=clgreen;
shape2.Brush.Color:=clgreen;
jumlahdata:=chart1.GetMaxValuesCount;
form1.Caption:=inttostr(jumlahdata);
if jumlahdata =10000 then
begin
chart1.Series[0].Clear;
chart1.Series[1].Clear;
end;
if rightstr(rin,1)= 'a' then
begin
edit1.Text:=leftstr(rin,length(rin)-1);
ruang:=strtofloat(edit1.text);
chart1.Series[0].Add(ruang,'',clred) ;
shape1.Brush.Color:=clred;
end;
if rightstr(kin,1)='b' then
begin
edit2.Text:=leftstr(kin,length(kin)-1);
kulit:=strtofloat(edit2.text);
chart1.Series[1].Add(kulit,'',clgreen) ;
shape2.Brush.Color:=clred;
end;
if (kulit >= 99) and (ruang > 476) and (ruang < 1023) then
begin
Label5.Caption := 'AMAN' ;
end;
if (kulit >= 96) and (kulit <= 98) and (ruang > 340) and (ruang < 475) then
begin
Label5.Caption := 'SIAGA';
end;
if (kulit < 96) and (ruang < 339) then
begin
Label5.Caption := 'BAHAYA';
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
var ruang:double;
begin
ruang:=strtofloat(edit1.text);
if ruang<30 then
begin
edit1.Color:=clblue;
edit3.text:= 'Lembab';
end;
if ruang>31 then
begin
edit1.Color:=clred;
edit3.text:= 'Kering';
end;
if (ruang>=31) and (ruang<=30) then
begin
edit1.Color:=clwhite;
edit3.text:= 'Normal';
end;
end;
procedure TForm1.Edit2Change(Sender: TObject);
var kulit:double;
begin
kulit:=strtofloat(edit2.text);
if kulit<60 then
begin
edit2.Color:=clblue;
edit4.text:= 'Kering';
end;
if kulit>61 then
begin
edit2.Color:=clred;
edit4.text:= 'Lembab';
end;
if (kulit>=61) and (kulit<=60) then
begin
edit2.Color:=clwhite;
edit4.text:= 'Normal';
end;
end;