langsung saja
ini gambar skemaya
dan dibawah ini program ya ,disini RTC ya pakek ds3132 karna ada sensor suhuya
#include <DS3231.h>
//#include <Time.h> //http://www.arduino.cc/playground/Code/Time
//#include <Wire.h>
DS3231 rtc(SDA, SCL);
Time waktu;
int nomer;
int seken;
int angka;
int satuan;
int puluhan;
int ratusan;
int ribuan;
int x;
int dataJam = 43;
int dataMenit = 21 ;
uint8_t dataDetik = 0;
int datasex;
int ha;
int ri;
int lm35;
int lm3;
int lm5;
int rlsa;
//digitalWrite(2,LOW);
void setup()
{
// Serial.begin(9600);
rtc.begin();
// put your setup code here, to run once:
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void delok()
{ //tampilkan hari
Serial.println(rtc.getDOWStr(FORMAT_LONG));
//ambil waktu
waktu = rtc.getTime();
dataJam = waktu.hour;
dataMenit = waktu.min;
datasex = waktu.sec;
dataDetik = waktu.date, DEC;
lm35 = (rtc.getTemp());
// Serial.print(dataJam);
//Serial.print(':');
// Serial.print(dataMenit);
// Serial.print(':');
// Serial.println(dataDetik);
//delay(1000);
}
void pecah()
{ satuan = dataMenit % 10;
puluhan = (dataMenit / 10) % 10;
ratusan = dataJam % 10;
ribuan = (dataJam / 10) % 10;
ha = dataDetik % 10;
ri = (dataDetik / 10) % 10;
lm3 = lm35 % 10;
lm5 = (lm35 / 10) % 10;
}
void SEKEN()
{ digitalWrite(7, HIGH);
//delay(0.01);
digitalWrite(7, LOW);
// delay(0.01);
}
void detakken()
{ digitalWrite(4, HIGH);
// delay(0.5);
digitalWrite(4, LOW);
// delay(0.5);
}
void mlaku()
{ for (seken = 0; seken < 18; seken++)
{ digitalWrite(5, HIGH); //A
// delay(0.011);
digitalWrite(3, HIGH); //A
// delay(0.01);
switch (seken) {
case 0:
angka = lm5;
digitalWrite(2, HIGH);
// delay(0.01);
detakken();
sexmen();
digitalWrite(4, LOW);
// delay(0.01);
break;
case 1:
angka = ribuan;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
break;
case 2:
angka = ratusan;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
break;
case 3:
angka = puluhan;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
break;
case 4:
angka = satuan;
digitalWrite(2, LOW);
//delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
break;
case 5:
angka = ri;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(1);
break;
case 6:
angka = ha;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
break;
case 7:
angka = lm5;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
break;
case 8:
angka = lm3;
digitalWrite(2, LOW);
// delay(0.01);
detakken();
sexmen();
digitalWrite(3, LOW);
delay(2);
digitalWrite(5, LOW);
delay(1);
break;
}
}
}
void sexmen()
{ digitalWrite(8, LOW);
delay(0.001);
switch (angka) {
case 0:
digitalWrite(8, HIGH);
delay(0.01);
digitalWrite(6, HIGH);
SEKEN();
digitalWrite(6, LOW);
SEKEN();
digitalWrite(6, LOW);
SEKEN();
digitalWrite(6, LOW);
SEKEN();
digitalWrite(6, LOW);
SEKEN();
digitalWrite(6, LOW);
SEKEN();
digitalWrite(6, LOW);
SEKEN();
digitalWrite(8, HIGH); //G
SEKEN();
break;
case 1:
digitalWrite(8, HIGH);
delay(0.01);
digitalWrite(6, HIGH); //G
SEKEN();
digitalWrite(6, HIGH); //F
SEKEN();
digitalWrite(6, HIGH); //E
SEKEN();
digitalWrite(6, HIGH); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, HIGH); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 2:
digitalWrite(8, HIGH);
delay(0.01);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, HIGH); //F
SEKEN();
digitalWrite(6, LOW); //E
SEKEN();
digitalWrite(6, LOW); //D
SEKEN();
digitalWrite(6, HIGH); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 3:
digitalWrite(8, HIGH);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, HIGH); //F
SEKEN();
digitalWrite(6, HIGH); //E
SEKEN();
digitalWrite(6, LOW); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 4:
digitalWrite(8, HIGH);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, LOW); //F
SEKEN();
digitalWrite(6, HIGH); //E
SEKEN();
digitalWrite(6, HIGH); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, HIGH); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 5:
digitalWrite(8, HIGH);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, LOW); //F
SEKEN();
digitalWrite(6, HIGH); //E
SEKEN();
digitalWrite(6, LOW); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, HIGH); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 6:
digitalWrite(8, HIGH);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, LOW); //F
SEKEN();
digitalWrite(6, LOW); //E
SEKEN();
digitalWrite(6, LOW); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, HIGH); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 7:
digitalWrite(8, HIGH);
digitalWrite(6, HIGH); //G
SEKEN();
digitalWrite(6, HIGH); //F
SEKEN();
digitalWrite(6, HIGH); //E
SEKEN();
digitalWrite(6, HIGH); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 8:
digitalWrite(8, HIGH);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, LOW); //F
SEKEN();
digitalWrite(6, LOW); //E
SEKEN();
digitalWrite(6, LOW); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
case 9:
digitalWrite(8, HIGH);
digitalWrite(6, LOW); //G
SEKEN();
digitalWrite(6, LOW); //F
SEKEN();
digitalWrite(6, HIGH); //E
SEKEN();
digitalWrite(6, LOW); //D
SEKEN();
digitalWrite(6, LOW); //C
SEKEN();
digitalWrite(6, LOW); //B
SEKEN();
digitalWrite(6, LOW); //A
SEKEN();
digitalWrite(6, HIGH);
SEKEN();
break;
}
}
void bazzer()
{
for (rlsa = 0; rlsa >= 20000; rlsa++)
{
digitalWrite(12, HIGH);
delay(1);
digitalWrite(12, LOW);
delay(1);
}
}
void loop() {
delok();
//analogRead(A0)*0.488;
//pagi
if (dataJam == 06)
{ if (dataMenit == 01)
{ if (datasex == 01)
{ digitalWrite(13, HIGH);
delay(1); bazzer();
digitalWrite(13, LOW);
delay(1);
goto BALBAL;
}
else
{
goto BALBAL;
}
} else
{ goto BALBAL;
}
} BALBAL:
//siang
if (dataJam == 15)
{ if (dataMenit == 10)
{ if (datasex == 05)
{ digitalWrite(13, HIGH);
delay(10);
bazzer();
digitalWrite(13, LOW);
delay(10);
goto BALBALA;
}
else
{
goto BALBALA;
}
} else
{
goto BALBALA;
}
}
BALBALA:
//sore
if (dataJam == 16)
{ if (dataMenit == 49)
{ if (datasex == 01)
{ digitalWrite(9, HIGH);
delay(1);
bazzer();
digitalWrite(9, LOW);
delay(1);
digitalWrite(9, HIGH);
delay(100);
digitalWrite(9, LOW);
delay(100);
digitalWrite(9, HIGH);
delay(100);
digitalWrite(9, LOW);
delay(100);
digitalWrite(9, HIGH);
delay(100);
digitalWrite(9, LOW);
delay(100);
goto BALBALB;
}
else
{
goto BALBALB;
}
} else
{
goto BALBALB;
}
}
BALBALB:
for (x = 0; x < 20; x++) {
pecah();
mlaku();
}
}//}
nah ini saaat di jalan kan
Senin, 27 Maret 2017
7SEKMEN ARDUINO
NAH DISINI ANE berbagi gimana cara ya arduino jalan kan 7sekmen dengan driver 74ch595
lansung aja kita bahas
ini skema rangkaian di proteus
lansung aja kita bahas
ini skema rangkaian di proteus
nah ini sekarang koding ya di arduino
int nomer=0;
void setup() {
// put your setup code here, to run once:
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void SEKEN()
{ digitalWrite(7,HIGH);
delay(1);
digitalWrite(7,LOW);
delay(1);
}
void sexmen()
{ digitalWrite(6,LOW);
delay(0.001);
switch (nomer){
case 0:
digitalWrite(6,HIGH);
delay(1);
digitalWrite(8,HIGH);
SEKEN();
digitalWrite(8,LOW);
SEKEN();
digitalWrite(8,LOW);
SEKEN();
digitalWrite(8,LOW);
SEKEN();
digitalWrite(8,LOW);
SEKEN();
digitalWrite(8,LOW);
SEKEN();
digitalWrite(8,LOW);
SEKEN();
digitalWrite(8,HIGH);//G
SEKEN();
delay(1);
break;
case 1:
digitalWrite(6,HIGH);
delay(1);
digitalWrite(8,HIGH);//G
SEKEN();
digitalWrite(8,HIGH);//F
SEKEN();
digitalWrite(8,HIGH);//E
SEKEN();
digitalWrite(8,HIGH);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,HIGH);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 2:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,HIGH);//F
SEKEN();
digitalWrite(8,LOW);//E
SEKEN();
digitalWrite(8,LOW);//D
SEKEN();
digitalWrite(8,HIGH);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 3:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,HIGH);//F
SEKEN();
digitalWrite(8,HIGH);//E
SEKEN();
digitalWrite(8,LOW);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 4:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,LOW);//F
SEKEN();
digitalWrite(8,HIGH);//E
SEKEN();
digitalWrite(8,HIGH);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,HIGH);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 5:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,LOW);//F
SEKEN();
digitalWrite(8,HIGH);//E
SEKEN();
digitalWrite(8,LOW);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,HIGH);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 6:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,LOW);//F
SEKEN();
digitalWrite(8,LOW);//E
SEKEN();
digitalWrite(8,LOW);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,HIGH);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 7:
digitalWrite(6,HIGH);
digitalWrite(8,HIGH);//G
SEKEN();
digitalWrite(8,HIGH);//F
SEKEN();
digitalWrite(8,HIGH);//E
SEKEN();
digitalWrite(8,HIGH);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 8:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,LOW);//F
SEKEN();
digitalWrite(8,LOW);//E
SEKEN();
digitalWrite(8,LOW);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
case 9:
digitalWrite(6,HIGH);
digitalWrite(8,LOW);//G
SEKEN();
digitalWrite(8,LOW);//F
SEKEN();
digitalWrite(8,HIGH);//E
SEKEN();
digitalWrite(8,LOW);//D
SEKEN();
digitalWrite(8,LOW);//C
SEKEN();
digitalWrite(8,LOW);//B
SEKEN();
digitalWrite(8,LOW);//A
SEKEN();
digitalWrite(8,HIGH);
SEKEN();
delay(1);
break;
}}
void loop()
{
sexmen();
delay(1000);
nomer++;
if(nomer>=10)
{nomer=0;
}
}
udah gituaja jangan bayak bayak wk wk wk
Minggu, 26 Maret 2017
PENGALAMAN MENGUNAKAN ATMEGA 8
NAH DISINI SAYA akan membagikan pengalaman saya mengunakan IC microkontroler atmega 8a/L
dari 2014 sampai sekarang 2017 ane udah nrusakin 4 ic atmega 8. yang pertama karena ic atmega 8 kelebihan tegangan yg dikarenakan ic regulator jebol, 15v lolos langsung ke ic dan langsung tidak bisa dipakai kembali
dan yang kedua ane rusakin 3 ic yang di akibat kan ic terkunci flesya tapi ic tetab bisa digunakan sayangya ic tidakbisa di program kembali
dari 2014 sampai sekarang 2017 ane udah nrusakin 4 ic atmega 8. yang pertama karena ic atmega 8 kelebihan tegangan yg dikarenakan ic regulator jebol, 15v lolos langsung ke ic dan langsung tidak bisa dipakai kembali
dan yang kedua ane rusakin 3 ic yang di akibat kan ic terkunci flesya tapi ic tetab bisa digunakan sayangya ic tidakbisa di program kembali
nah ini buktiya projek saya baru selesai separo pemprograman ya udah gk bisa di program lagi.
menurut saya hal ini di sebabkan karena pada saat saya memprogram beban pada micro terpasang dan aktif, kenapa kok karena itu ic bisa terkunci??? . karena pada beban aktif daya pada power saply akan tergangu naik turun yang meyebabkan data yg di tramver ke ic tidak sesui data yg seharusya dikirem. itu menurut saya kalou teman teman ada tanggapan lain bisa komen :D.
di sini saya puyak ide bikin driver agar beban mati apabila konektor usbbas dipasang
nah ini sekemaya
cukup segini dulu lainkali disambung lagi
Selasa, 27 Desember 2016
pendeteksi jumlah detak jantung dalam 15 detik
pendeteksi jumlah detak jantung dalam 15 detik
nah di sini saya akan menunjuk kan cara membuat pendeteksi jumlah detak jantung dalam 15 detik . alat ini akan membaca jumlah detak jantung dan akan menilai anda sehat atau kurang sehat .
disini saya mengunakan kontroler arduino nano karena ukuranya yg kecill dan mudah pemprograman ya,dan display tampilan saya mengunakan LCD 16X2 agar tampilan lebih menarik dan program tidak terlalu panjang, danmeng gunakan sensor infraret satupasang untuk membaca darah yg mengalir di jari, dan beberapa kompone penguat yang mengunakan lm 324
langsung saja kita keprogram ya
ini kopian programya
/*
Program membaca nilai ADC
dengan serial
Loki Lang
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int analogPin = A3;
int JGJ = 0;
int x= 0;
int lang = 0;
int wektu = 0;
int con= 0 ;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{atas:
// lcd.clear();
for(x=0;x<4;x++)
{
lang = analogRead(analogPin);
if(lang>=200)
{JGJ++;
}
lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.setCursor(0, 1);
lcd.print("DETIK.");
lcd.print(wektu);
delay(200);
Serial.println(lang);}
wektu ++ ;
lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.setCursor(0, 1);
lcd.print("DETIK.");
lcd.print(wektu);
delay(10);
if(wektu>=15)
{lcd.clear();
eeeem:
if(JGJ>=15)
{ lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.print(",selamat");
lcd.setCursor(2, 1);
lcd.print("anda sehat");
delay(1000);
goto eeeem;}
else{lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.print(",maaf anda");
lcd.setCursor(2, 1);
lcd.print("kurang sehat");
delay(1000);}
goto eeeem;}
else{goto atas;}
}
nah di sini saya akan menunjuk kan cara membuat pendeteksi jumlah detak jantung dalam 15 detik . alat ini akan membaca jumlah detak jantung dan akan menilai anda sehat atau kurang sehat .
disini saya mengunakan kontroler arduino nano karena ukuranya yg kecill dan mudah pemprograman ya,dan display tampilan saya mengunakan LCD 16X2 agar tampilan lebih menarik dan program tidak terlalu panjang, danmeng gunakan sensor infraret satupasang untuk membaca darah yg mengalir di jari, dan beberapa kompone penguat yang mengunakan lm 324
langsung saja kita keprogram ya
ini kopian programya
/*
Program membaca nilai ADC
dengan serial
Loki Lang
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int analogPin = A3;
int JGJ = 0;
int x= 0;
int lang = 0;
int wektu = 0;
int con= 0 ;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{atas:
// lcd.clear();
for(x=0;x<4;x++)
{
lang = analogRead(analogPin);
if(lang>=200)
{JGJ++;
}
lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.setCursor(0, 1);
lcd.print("DETIK.");
lcd.print(wektu);
delay(200);
Serial.println(lang);}
wektu ++ ;
lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.setCursor(0, 1);
lcd.print("DETIK.");
lcd.print(wektu);
delay(10);
if(wektu>=15)
{lcd.clear();
eeeem:
if(JGJ>=15)
{ lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.print(",selamat");
lcd.setCursor(2, 1);
lcd.print("anda sehat");
delay(1000);
goto eeeem;}
else{lcd.setCursor(0, 0);
lcd.print("JDJ=");
lcd.print(JGJ);
lcd.print(",maaf anda");
lcd.setCursor(2, 1);
lcd.print("kurang sehat");
delay(1000);}
goto eeeem;}
else{goto atas;}
}
Kamis, 24 November 2016
pemberi makan ikan otomatis
wah brati anda gk bisa pergi dari rumah lebih dari 3 hari dong?
nah kali ini ane akan nunjukun cara bikin pemberimakan ikan otomatis yang agak simpel
sekarang kita siapin duru alat alatya
1. PC yang sudah terintal cvavr dan xtrimbumer
2. downloder atmega
3. atmega + minsisya
4. motor steper 9gram 90 derajat
5. kabel secukupya
6. botol air mineral 1,5L
7. botol mineral 300mL
8.bok tempat ngerakit
9.power saplay
10. 7sekmen
11. atmega 8a
nah sekarang kita donlot program di dibawah ini ke ic atmega8
#include <mega8.h>
#include <delay.h>
unsigned char angka[10]={0xc0,0xF9,0x0A4,0xb0,0x99,0x92,0x82,0xF8,0x80,0x90};
int x,time,X;
#define ADC_VREF_TYPE 0x40
void moto_servo()
{
for(X=0;X<100;X++)
{
PORTB.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 2 ms
PORTB.0=0;
delay_ms(18.5); }
for(X=0;X<100;X++)
{
PORTB.0=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTB.0=0;
delay_ms(18); }
for(X=0;X<200;X++)
{
PORTB.0=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 2 ms
PORTB.0=0;
delay_ms(19); }
}
void tampilkan_seven_segment()
{
PORTD=angka[time];
}
void main(void)
{
PORTB=0xFF;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xFF;
PORTD=0xFF;
DDRD=0xFF;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
SFIOR=0X00;
moto_servo();
while (1)
{ PORTB.0=0;
detii:
if(time<=9)
{
for(x=0;x<3600;x++)
{ delay_ms(2000);
tampilkan_seven_segment();
}
time++;
}
else
{time=0;
moto_servo();
moto_servo();
tampilkan_seven_segment();
goto detii; }
};
}
nah setelah program di atas sudah di downod ke ic atmega 8 sekarang kita tingal hubungin
pot pot ic ke 7sekmen dan motor serfo
TAMBAHAN PEMODELAN TANDON PAKAN
OTPUTAN PAKAN HARUS DIBERI KARET AGAR KLUARAN PAKAN HAMPIR SAMA SETIAP BERJALAN YA
vidio mekanik bak yang baru lebih simpel dan gkperlu bisa microkontrol
cukup beli temer digital
cukup beli temer digital
Minggu, 07 Februari 2016
TERMO METER MENGUNAKAN LM35
Pada kesempatan kali ini saya akan membagikan program,skema dan tata cara mengunakan termometer ini.termometer ini membaca huhu dalam drajat celsius dan bisa membaca 0C- 150C. termometer ini juga di lengkapi 4 relay yang bisa mengontrol atau menghidupkan kipas DLL. bisa diatur suhu dingin atau panas untuk menghidupkan relai satu sampai relay empat.
ini gambar skema rangkaian
ini gambar saat proteus di jalan kan di proteus
ini cara mengatur suhu untuk mengatur relay agar berfungsi
pertama tekan tombol mode hingga kluar tulisan seperti digambar
lalu sehabis kluar tulisan pada gambar diatas maka akan keluar tulisan seperti ini
setelah itu tombol UP atau Down seting sesuai dengan keingina,tata cara memen cat pencet terus tombol UP maka nanti dia akan terus menambah angka batas yang di inginkan dan sebalik ya
fungsi penyetel UP 1 dan UP 2 adalah apabila suhu yangkita tentukan 27C maka relay akan bekerja apabila suhu yang dibaca sensor lebih besar dari 27C
fungsi penyetel dn 1 dan dn 2 adalah apabila suhu yangkita tentukan 27C maka relay akan bekerja apabila suhu yang dibaca sensor kurang dari 27C
vidio aplikatif ya
tambahan program apabila tidak bisa di unduh di google drev
#include <mega8.h>
#include <delay.h>
unsigned char angka[20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
int satuan,puluhan,ratusan,ribuan,data,data_temp,x,Y,empat,tiga,dua,satu,relay1,PILIH,relay2,relaya,relay3,relay4;
#define ADC_VREF_TYPE 0x40
#define UP PINC.4
#define RL PORTB.4
#define RLL PORTB.5
#define SW PINC.2
#define DW PINC.3
#define R3 PORTB.6
#define R4 PORTB.7
// #define DOT PORTD.7
//relay1=0;
//relay2=0;
//relay3=0;
//relay4=0;
//PILIH=0;
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void aditt()
{satu=0x88;
dua=0xa1;
tiga=0xf9;
empat=0x87; }
void swit()
{
satu=0xc1;
dua=0x8c;
tiga=0xff;
empat=0xf9;
}
void swit2()
{
satu=0xc1;
dua=0x8c;
tiga=0xff;
empat=0xa4;
}
void swit3()
{
satu=0xa1;
dua=0xc8;
tiga=0xff;
empat=0xf9;
}
void swit4()
{
satu=0xa1;
dua=0xc8;
tiga=0xff;
empat=0xa4;
}
void relay11()
{
data_temp=relaya;
satuan=data_temp%10;
puluhan=(data_temp/10)%10;
ratusan=(data_temp/100)%10;
ribuan=(data_temp/1000)%10;
}
void ambil_data()
{
data_temp=data;
satuan=data_temp%10;
puluhan=(data_temp/10)%10;
ratusan=(data_temp/100)%10;
ribuan=(data_temp/1000)%10;
}
void tampilkan_seven_segment()
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
PORTB.3=0;
PORTD=0xC6;
delay_ms(1);
PORTB.0=0;
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
PORTD=angka[satuan];
delay_ms(1);
PORTB.0=0;
PORTB.1=0;
PORTB.2=1;
PORTB.3=0;
PORTD=angka[puluhan];
delay_ms(1);
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
PORTD=angka[ratusan];
delay_ms(5);
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=0;
PORTD=angka[ratusan];
delay_ms(1);
}
void huruf()
{
PORTB.0=1;
PORTB.1=0;
PORTB.2=0;
PORTB.3=0;
PORTD=empat;
delay_ms(1);
PORTB.0=0;
PORTB.1=1;
PORTB.2=0;
PORTB.3=0;
PORTD=tiga;
delay_ms(1);
PORTB.0=0;
PORTB.1=0;
PORTB.2=1;
PORTB.3=0;
PORTD=dua;
delay_ms(1);
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=1;
PORTD=satu;
delay_ms(1);
PORTB.0=0;
PORTB.1=0;
PORTB.2=0;
PORTB.3=0;
PORTB.3=1;
PORTD=0x88;
delay_ms(1);
}
void main(void)
{
PORTB=0xFF;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0xFF;
DDRD=0xFF;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
PORTD=0XFF;
delay_ms(1);
PORTD=0XFF;
delay_ms(1);
PORTD=0XFF;
delay_ms(1);
adit:
for (Y=0;Y<200;Y++)
{
aditt();
huruf();
}
while (1)
{
data=read_adc(5)*0.488+2;
for(x=0;x<30;x++)
{
ambil_data();
tampilkan_seven_segment();
if(data >= relay1)
{ RLL = 0; }
else
{ RLL=1;}
if(data>= relay2)
{RL = 0;}
else
{RL = 1;}
if(data <= relay3)
{ R3 = 0; }
else
{ R3=1;}
if(data<= relay4)
{R4 = 0;}
else
{R4 = 1;}
}
RELAY_SATU:
if(SW == 1)
{ PILIH++;
delay_ms(50);
if(PILIH == 1)
{relaya=relay1;
for(x=0;x<100;x++)
{swit();
huruf();
}
goto tulis;}
else
{if(PILIH == 2)
{relaya=relay2;
for(x=0;x<100;x++)
{swit2();
huruf();
}
goto tulis;}
else
{if(PILIH == 3)
{relaya=relay3;
for(x=0;x<100;x++)
{swit3();
huruf();
}
goto tulis;}
else
{if(PILIH == 4)
{relaya=relay4;
for(x=0;x<100;x++)
{swit4();
huruf();
}
goto tulis;}
}
}
}
tulis:
uuup:
for(x=0;x<100;x++)
{//relaya=relay1;
relay11();
tampilkan_seven_segment();
}
if(UP == 1)
{ delay_ms(10) ;
relaya++;
if(relaya > 150)
{relaya=150;}
else
{goto uuup;} }
else
{ if(DW == 1)
{delay_ms(10) ;
relaya--;
if(relaya <= 0)
{relaya=0;}
else
{goto uuup;}
}
else
{if(SW == 1)
{ if(PILIH == 1)
{relay1=relaya;
goto RELAY_SATU;}
if(PILIH == 2)
{relay2=relaya;
goto RELAY_SATU;}
else
{
if(PILIH == 3)
{relay3=relaya;
goto RELAY_SATU;}
else
{if(PILIH == 4)
{relay4=relaya;
PILIH=0;
goto adit;}
}
}
}
else
{goto uuup;}
}
}
// else
// { goto baca;}
}
}
}
Sabtu, 09 Januari 2016
CARA MEMINDAHKA LAYOUT PCB DENGAN AUTAN
CARA MEMINDAHKA LAYOUT PCB DENGAN AUTAN
Pertama siapkan bahan bahan yang dibutuh kan
1. gambar layout pcb yang sudah difotokopi di kertas hvs 80gr
2. PCB polos (potong sesuai ukuran gambar layout)
1. gambar layout pcb yang sudah difotokopi di kertas hvs 80gr
2. PCB polos (potong sesuai ukuran gambar layout)
3. mika sampul jilit. beli difotokopian
4. bekas kartu SIM atau yg serupa
5. tidak ketinggalan autan/sovel yang dilarutkan dengan air 50mL
6. serat besi(untuk mengosok pcb)
4. bekas kartu SIM atau yg serupa
5. tidak ketinggalan autan/sovel yang dilarutkan dengan air 50mL
6. serat besi(untuk mengosok pcb)
langkah pertama potong kertas layout pcb sesuai gambar dilebihkan 2cm, setelah itu potong juga pcb sesuai besar gambar layout
setelah itu campurkan autan dengan air kira kira 50mL kalok ada masuk kan ke semprotan
contoh:
dan diaduk sampai merata. setelah itu oleskan cairan autan tersebut ke mika sesui lebar gambar leout pcb
setelah itu tempelkan kertas leout pcb kemika (posisi kertas yang ada tinta fotokopian diatas) ratakan
setelah itu tempelkan juga pcb yang sudah dibersihkan tadi
lalu tutup dengan mika lagi dan dibalik
lalu gosok gambar tersebut dengan koin sampai semuah gambar,berulang ulang kurang lebih selama 2menit.setelah itu klupas perlahan lahan kertas hps dari pcb. hasil seperti iniini vidio cara mentranverya
apabila leout ada yang putus di sambung dengan spidol permanen
itu hasil percobaan saya
skian trimakasih semoga bermanfaan
amin
amin
amin
;D
Langganan:
Postingan (Atom)