Membuat Timer Count Down Menggunakan D-Flop Flop dan 7Segment
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat timer count down menggunakan rangkaian analog tanpa mikrokontroller, IC yang digunakan yaitu IC D-flip-flop 74LS74 dan IC BCD to 7seg 74LS47. Alat ini counter down dari angka 9 ke angka 0 dengan menggunakan sebuah tombol untuk mengganti angkanya. 7Segment yang dipakai adalah common anoda sehingga harus dikasih tegangan 5 volt untuk mengaktifkannya. untuk lebih jelasnya berikut gambar per komponennya. Untuk download simulasi PROTEUS-nya bisa di link berikut
Pertama yaitu hubungkan alat dengan power supply 5v dan pastikan ada pengaman tegangan seperti dioda atau sejenisnya, jika berhasil maka akan tampak nilai pada 7segment. tekan tombol secara perlahan sehingga akan tampak jelas angka yang count down atau berhitung mundur dari 9 sampai ke 0. jika sudah 0 maka akan balik lagi ke 9 dan seterusnya begitu.
Mengakses Sensor PH dengan Mikrokontroller, Membuat Alat Deteksi PH Cairan / AIR
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana membuat dan mengakses alat menggunakan sensor PH. jadi fungsi dari alat ini adalah untuk mengetahui tingkat asam dan basa suatu cairan misal susu atau air kolam. aplikasi dari alat ini yaitu bisa untuk intensitas PH kolam lele, pengukur kualitas susu, dan lain-lain. yang perlu diperhatikan yaitu pertama harus memiliki kalibrator terlebih dahulu sejenis cairan dengan PH yang telah diketahui yang kemudian dilakukan linierisasi menggunakan data adc yang terbaca sehingga didapat persamaan rumusnya. untuk lebih jelasnya berikut adalah skema dan programnya.
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Cls Cursor Off
Dim Dataadc As Word Dim Ph As Single
Do
Dataadc = Getadc(0)
Ph = -0.021 * Dataadc Ph = Ph + 19.92
Upperline Lcd Dataadc
Lowerline Lcd "PH = " ; Fusing(ph , "#.##")
Waitms 200
Loop
d. Cara Menggunakan Alat
Pertama yang harus dilakukan yaitu mengukur adc pada kalibrator, jadi siapkan 2 buah kalibrator dengan variasi PH, kemudian setiap kali dicelupkan ke cairan kalibrator harus dinetralkan dengan PH 7 atau dengan AQUADES. kemudian setelah semua data didapat dimasukkan ke dalam grafik sehingga akan didapatkan rumus persamaan PH. Gunakan rumus persamaan tersebut untuk pembuktian, jika berhasil maka Detektor PH siap digunakan.
Jual Kontroller POMPA AIR MANCUR / LAMPU AC ( Water PUMP Controller )
Kami menyediakan jasa pembuatan alat kendali pompa air dan juga menjual aneka kontroller untuk pompa air mancur, jumlah pompa yang dibutuhkan sesuai dengan pesanan dan juga variasi gerakan nyala pompa juga bisa diatur sesuai pesanan, alat ini tidak hanya untuk pompa air macur tetapi bisa digunakan untuk kontroller nyala lampu AC juga bisa, misal untuk disko atau untuk lampu panggung atau lapangan. kami memiliki 2 jenis produk yaitu
Mau pesan bisa WA atau SMS ke nomer 085726496643
1. Kontroller Menggunakan Relay
Spesifikasi
- Menggunakan Relay Omron 10A
- Maksimal Daya Pompa 220v 10A
- Dapat di program menggunakan Timer
- Terdapat RTC jadi bisa setting jam ON dan OFF nya untuk otomatis
- Supply menggunakan 12v 5A.
FOTO ALAT
2. Kontroller menggunakan TRIAC dan Optocoupler
Spesifikasi =
- Menggunakan TRIAC BTA41 40A
- Menggunakan Optocoupler MOC3021
- Maksimal Daya Pompa 220v 40A
- Dapat di program menggunakan Timer
- Terdapat RTC jadi bisa setting jam ON dan OFF nya untuk otomatis
- Supply menggunakan 12v 5A.
Kali ini akan saya bahas mengenai bagaimana cara membuat alat untuk kendali lampu lalu lintas yang disimulasikan dengan led, disini dilengkapi dengan jam dan juga hari yang tampil di layar LCD, alat ini dilengkapi 3 buah tombol yang mana tiap tombol mewakili satu buah instruksi yang mengandung rule jam ON dan OFF led, jadi misal tombol 1 ditekan, led akan hidup hari senin sampai kamis jam 8.00 sampai jam 13.00, tombol 2 untuk hari jumat-sabtu jam 8.00 - 13.00 begitu pula dengan tombol 3. untuk lebih jelasnya berikut program dan skemanya.
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year)
{
// sets time and date data to DS3231
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set next input to start at the seconds register
Wire.write(decToBcd(second)); // set seconds
Wire.write(decToBcd(minute)); // set minutes
Wire.write(decToBcd(hour)); // set hours
Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
Wire.write(decToBcd(month)); // set month
Wire.write(decToBcd(year)); // set year (0 to 99)
Wire.endTransmission();
}
void readDS3231time(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set DS3231 register pointer to 00h
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
// request seven bytes of data from DS3231 starting from register 00h
*second = bcdToDec(Wire.read() & 0x7f);
*minute = bcdToDec(Wire.read());
*hour = bcdToDec(Wire.read() & 0x3f);
*dayOfWeek = bcdToDec(Wire.read());
*dayOfMonth = bcdToDec(Wire.read());
*month = bcdToDec(Wire.read());
*year = bcdToDec(Wire.read());
}
void displayTime1()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
// send it to the serial monitor
lcd.setCursor(0, 0);
lcd.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
lcd.print(":");
if (minute<10)
{
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if (second<10)
{
lcd.print("0");
}
lcd.print(second, DEC);
void displayTime2()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
// send it to the serial monitor
lcd.setCursor(0, 0);
lcd.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
lcd.print(":");
if (minute<10)
{
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if (second<10)
{
lcd.print("0");
}
lcd.print(second, DEC);
void displayTime3()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
// send it to the serial monitor
lcd.setCursor(0, 0);
lcd.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
lcd.print(":");
if (minute<10)
{
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if (second<10)
{
lcd.print("0");
}
lcd.print(second, DEC);
Membuat alat kendali Traffic Light / LED Menggunakan ARDUINO Ethernet WEB SERVER dan RTC
Pada pagi hari ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang digunakan untuk kendali traffic light LED menggunakan WIFI Ethernet Web Server. Disini saya akan membuat sebuah sistem lampu lalu lintas yang mana delay lampu diset melalui server dan juga waktu nyala dan padam lampu juga diset melalui server, sehingga pada server akan tampil nilai jam dan delay lampu yang diset dan juga pada server terdapat tombol pemilihan untuk setting ulang nilainya. Untuk lebih jelas berikut adalah sema dan programnya.
// DS3231 seconds, minutes, hours, day, date, month, year
//setDS3231time(0,59,11,2,16,5,16);
pinMode(13, OUTPUT); //pin selected to control
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
//enable serial data print
Serial.begin(9600);
Serial.println("servertest1"); // so I can keep track of what is loaded
}
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year)
{
// sets time and date data to DS3231
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set next input to start at the seconds register
Wire.write(decToBcd(second)); // set seconds
Wire.write(decToBcd(minute)); // set minutes
Wire.write(decToBcd(hour)); // set hours
Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
Wire.write(decToBcd(month)); // set month
Wire.write(decToBcd(year)); // set year (0 to 99)
Wire.endTransmission();
}
void readDS3231time(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
Wire.beginTransmission(DS3231_I2C_ADDRESS);
Wire.write(0); // set DS3231 register pointer to 00h
Wire.endTransmission();
Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
// request seven bytes of data from DS3231 starting from register 00h
*second = bcdToDec(Wire.read() & 0x7f);
*minute = bcdToDec(Wire.read());
*hour = bcdToDec(Wire.read() & 0x3f);
*dayOfWeek = bcdToDec(Wire.read());
*dayOfMonth = bcdToDec(Wire.read());
*month = bcdToDec(Wire.read());
*year = bcdToDec(Wire.read());
}
void displayTime()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
// retrieve data from DS3231
readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
// send it to the serial monitor
lcd.setCursor(0, 0);
lcd.print(hour, DEC);
// convert the byte variable to a decimal number when displayed
lcd.print(":");
if (minute<10)
{
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if (second<10)
{
lcd.print("0");
}
lcd.print(second, DEC);
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino GET test page</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H3>kontrol ON / OFF dan delay lampu</H3>");
if(readString.indexOf("D2") >0)//checks for off
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SET ON LAMPU");
lcd.setCursor(0, 1);
lcd.print("JAM 07.00 AM");
ton = 2;
delay(3000);
lcd.clear();
}
if(readString.indexOf("D18") >0)//checks for off
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SET ON LAMPU");
lcd.setCursor(0, 1);
lcd.print("JAM 08.00 AM");
ton = 18;
delay(3000);
lcd.clear();
}
if(readString.indexOf("E2") >0)//checks for off
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SET OFF LAMPU");
lcd.setCursor(0, 1);
lcd.print("JAM 22.00 PM");
toff = 2;
delay(3000);
lcd.clear();
}
if(readString.indexOf("E18") >0)//checks for off
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SET OFF LAMPU");
lcd.setCursor(0, 1);
lcd.print("JAM 21.00 PM");
toff = 18;
delay(3000);
lcd.clear();
}
if(readString.indexOf("?mulai") >0)//checks for off
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("START PROGRAM");
lcd.setCursor(0, 1);
lcd.print("LOADING....");
delay(3000);
lcd.clear();
}
if(readString.indexOf("?set") >0)//checks for off
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MODE SETTING");
lcd.setCursor(0, 1);
lcd.print("LOADING....");
delay(3000);
lcd.clear();
}
while (readString.indexOf("?mulai") >0) {
mulai();
}
//clearing string for next read
readString="";
}
}
}
}
}
void mulai(){
displayTime();
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Arduino GET test page</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<H3>kontrol ON / OFF dan delay lampu</H3>");
Untuk menggunakan alat ini sangat lah mudah, yaitu masukkan nilai misal pada Delay lampu merah A10, lalu klik SUBMIT, setelah itu KLIK SETTING, kemudian masukkan nilai delay lampu kuning B20 untuk delay 20 detik, begitu seterusnya, jika berhasil maka nilai akan tersimpan pada bagian bawah form, jika sudah terisi semua nilainya KLIK MULAI, maka akan berjalan sesuai delay yang disetting, untuk kembali ke mode setting bisa dengan menekan tombol SETTING.