- Back to Home »
- Pengukur Ketinggian Air Pada Tangki Air / Toren Secara Otomatis Menggunakan ATMEGA8535
Posted by : Unknown
Senin, 05 Juni 2017
Berikut
adalah listing program lengkapnya:
//kondisi=0
adalah keadaan kosong,
//kondisi=1 adalah keadaan penuh,
//penggunaan variabel kondisi berfungsi sebagai penghilang
//efek bouncing yg disebabkan oleh gelombang air
bit kondisi;
#include <mega16.h>
#define pompa PORTA.0
#define ind_pompa PORTA.5
#define ind_min PORTA.7
#define ind_max PORTA.6
#define mode PINC.0
#define on_off PINC.1
#define maxim PINC.2
#define minim PINC.3
void otomatis()//pemilihan mode otomatis
{
if (mode==1)//mode otomatis
{
if (kondisi==0)
{
if (maxim==1)//kosong
{
pompa=0;
ind_pompa=0;
}
if (maxim==0)//penuh
{
pompa=1;
ind_pompa=1;
kondisi=1;
}
}
if (kondisi==1)
{
if (minim==1)
{
kondisi=0;
}
}
}
}
void manual()//pemilihan mode manual
{
if (mode==0)//manual
{
if (maxim==0)
{
pompa=1;
ind_pompa=1;
}
else
{
if (on_off==0)
{
pompa=0;
ind_pompa=0;
}
else
{
pompa=1;
ind_pompa=1;
}
}
}
}
void indikator()//menyalakan indikator LED MIN dan MAX
{
if (maxim==0) ind_max=0;
else ind_max=1;
if (minim==0) ind_min=0;
else ind_min=1;
}
void main(void)
{
DDRA=0xff; //inisialisasi port mikro
PORTA=0xff;
DDRC=0×00;
PORTC=0xff;
while (1)
{
otomatis();
manual();
indikator();
};
}
//kondisi=1 adalah keadaan penuh,
//penggunaan variabel kondisi berfungsi sebagai penghilang
//efek bouncing yg disebabkan oleh gelombang air
bit kondisi;
#include <mega16.h>
#define pompa PORTA.0
#define ind_pompa PORTA.5
#define ind_min PORTA.7
#define ind_max PORTA.6
#define mode PINC.0
#define on_off PINC.1
#define maxim PINC.2
#define minim PINC.3
void otomatis()//pemilihan mode otomatis
{
if (mode==1)//mode otomatis
{
if (kondisi==0)
{
if (maxim==1)//kosong
{
pompa=0;
ind_pompa=0;
}
if (maxim==0)//penuh
{
pompa=1;
ind_pompa=1;
kondisi=1;
}
}
if (kondisi==1)
{
if (minim==1)
{
kondisi=0;
}
}
}
}
void manual()//pemilihan mode manual
{
if (mode==0)//manual
{
if (maxim==0)
{
pompa=1;
ind_pompa=1;
}
else
{
if (on_off==0)
{
pompa=0;
ind_pompa=0;
}
else
{
pompa=1;
ind_pompa=1;
}
}
}
}
void indikator()//menyalakan indikator LED MIN dan MAX
{
if (maxim==0) ind_max=0;
else ind_max=1;
if (minim==0) ind_min=0;
else ind_min=1;
}
void main(void)
{
DDRA=0xff; //inisialisasi port mikro
PORTA=0xff;
DDRC=0×00;
PORTC=0xff;
while (1)
{
otomatis();
manual();
indikator();
};
}