Data Logger 5 Buah Sensor Suhu Dengan ATMEGA16

Pada kesempatan kali ini penulis mencoba berbagi cara akses multi sensor pada rangkaian mikrokontroler dengan komunikasi serial. Metode yang penulis gunakan adalah komunikasi dua arah antara mikrokontroler ATMega16 dengan delphi.

Berikut adalah tampilan form pada delphi 7.



Berikut merupakan tampilan hasil uji coba aplikasi tersebut.

Untuk penjelasan lebih lanjut source code aplikasi tersebut dapat di download disini.
Terima kasih, semoga bisa bermanfaat dan dapat dikembangkan untuk aplikasi yang lebih kompleks.


Counter Digital dengan LDR Sebagai Sensor Objek

Rangkain ini berfungsi sebagai Up Counter, jadi ketika objek menghalangi LDR maka counter akan naik satu digit dan seterusnya. rangkaian ini hanya menggunakan 2 digit seven segmen. untuk pengembangan dengan digit lebih banyak juga dapat dilakukan. berikut skema rangkaian tersebut :

Klik pada gambar untuk ukuran penuh

Rangkaian ini menggunakan IC 4026 (Digital Up Counter) dan seven segmen common katoda. 

Aplikasi Proses Pengisian dan Muat Barang dengan PLC Siemens Menggunakan TIA Portal V11


Pada Kesempatan kali ini, saya akan coba mempresentasikan contoh Ladder Pemograman PLC SIEMEN'S dengan Software TIA PORTAL V11

Berikut Penjelasan nya.....:-)

Motor Conveyor1 "C1"
Motor Conveyor2 Forward "C2F"
Motor Conveyor2 Reverse "C2R"
Motor Conveyor3 "C3"
Motor Conveyor4 "C4"
Valve Pengisian Tangki1 "V1" dan "V2"
Valve Pengisian Pada Kemasan Kosong (siap isi) "V3"

Sensor Low "SL" (mendeteksi saat isi tangki hampir kosong)
Sensor Middle "SM" (mendeteksi saat isi tangki setengah penuh)
Sensor High "SH" (Mendeteksi saat isi tangki full atau penuh)
Sensor Penghitung (Counter) Pengisian Kedalam Kemasan PACK (Kardus) "S1"
Sensor Pendeteksi adanya kemasan kosong "S2"
sensor Kemasan Merah "S3"
Sensor Kemasan Putih "S4"


Pada Awal"...
PROSES TANGKI
--------------------------------------------------------------------
terdapat "Tangki" bahan baku siap kemas,
kita beri nama "T1"
pada T1 terdapat 3 buah sensor dan 2 buah Valve pengisian...

Ketika "SL" mendeteksi, maka kedua "V1" dan "V2" akan membuka katupnya untuk mengisi "T1"
ketika "SM" mendeteksi Maka "V1" akan menutup namun "V2" tetap terbuka
ketika "SH" Mendeteksi Maka "V2" akan tertutup (kedua Valve telah tertutup)

PROSES CONVEYOR1 (Membawa Kemasan Kosong siap isi)
--------------------------------------------------------------------
ketika PB (Push Button) Strar C1 di tekan, C1 ON (berjalan) menuju "V3"
ketika "S2" Mendeteksi maka "C1" akan OFF delay sejenak dan "V3" akan membuka katup nya untuk mengisi kemasan dengan Timer 5s, (Timer Off Delay) ketika Timer mencapai 5s maka "C1 secara otomatis ON kembali dan begitu seterus nya..

PROSES CONVEYOR2 (Membedakan Kemasan Melauli Warna)
--------------------------------------------------------------------
Ketika "S3" Mendeteksi Maka "C2" akan berfungsi Forward (menuju Packing Kardus Kemasan Merah)
Ketika "S4" Mendeteksi Maka "C2" akan berfungsi Reverse (Menuju Packing Kardus Kemasan Putih)


PROSES CONVEYOR3 (Menuju Packing Kardus)
Pada saat "S1" menghitung hingga 12 maka "C4" ON dam mebawa PACK KARDUS Menuju Ruangan Muat Barang



NB: C4 Disana Hanya dibuat 1 Program (untuk Kemasan Merah) tidak d buat Kemasan untuk warna Putih, Namun bentuh programnya sama dengan yang Merah, begitu pula dengan Counter nya..


Saya rasa cukup sekian dulu...

untuk kelengkapannya
Klik Disini

untuk file simulasi dengan TIA Portal belum sempat di upload.
bagi yang berminat silahkan PM ajah Via Inbox FB
nanti saya kirim Via Email..

Percobaan ini masih dalam tahap pengembangan dan penyempurnaan
next akan di posting kembali

Thank's...
salam belajar bersama...
:-)

Pengaturan Kecepatan Motor DC dengan ATMEGA16 dan L293D

Pada posting kali ini dilakukan uji coba pengaturan kecepatan putaran motor DC, menggunakan mikrokontroler ATMEGA16 sebagai prosesor, dan driver menggunakan ICL293D yang dapat di inputkan tegangan maksimum 32V, LCD karakter 16x2 sebagai user interface, berikut skema rangkaian tersebut :


Motor DC yang di kontrol berjumlah 2 buah, dengan pengaturan dengan 4buah push button, yang berfungsi menaikan dan menurunkan kecepatan.

Driver motor menggunakan IC L293D yang sudah biasa digunakan, dengan fungsi sebagai berikut :
- IN1 & IN2 = arah putaran motor 1 misal (IN1=High & IN2=Low) maka motor forward dan sebaliknya
- IN3 & IN4 = arah putaran motor 2 misal (IN3=High & IN4=Low) maka motor forward dan sebaliknya
- EN1 = Pengatur kecepatan motor 1 dengan metode PWM (Pulse Width Modulation)
- EN1 = Pengatur kecepatan motor 2 dengan metode PWM (Pulse Width Modulation)

Dengan memanfaatkan fitur Fast PWM yang terdapat dalam mikrokontroler ATMEGA16, pemrograman diawali dengan mengaktifasi Fast PWM mode OCR1A untuk motor 1, dan OCR1B untuk motor 2, kemudian nilai OCR1A dan OCR1B ditampilkan melalui LCD sebagai parameter. Berikut merupakan program lengkapnya yang saya tulis dengan bahasa C pada CodeVision AVR :
#include

// Alphanumeric LCD Module functions
#include
#include
//Deklarasi variabel
int SA,SB;
char MA[8];
char MB[8];
void main(void)
{
PORTA=0xFF;
DDRA=0x00;
PORTD=0x00;
DDRD=0xFF;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 12000.000 kHz
// Mode: Fast PWM top=0x00FF
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0xA1;
TCCR1B=0x09;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

/ Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 8
lcd_init(8);

while (1)
      {   
      lcd_gotoxy(0,0);lcd_putsf("M1=");lcd_gotoxy(0,1);lcd_putsf("M2=");  
      PORTD.0=1;   //Motor 1 Forward
      PORTD.1=0; 
      PORTD.3=1;   //Motor 2 Reverse
      PORTD.4=0; 
      if(PINA.0==0){SA++;}  //Jika pushbutton A0 ditekan naikan kecepatan motor 1
      if(PINA.1==0){SA--;}   //Jika pushbutton A1 ditekan turunkan kecepatan motor 1
      if(PINA.2==0){SB++;}   //Jika pushbutton A2 ditekan naikan kecepatan motor 2
      if(PINA.3==0){SB--;}    //Jika pushbutton A3 ditekan turunkan kecepatan motor 2
      lcd_gotoxy(5,0);itoa(SA,MA);lcd_puts(MA); //Tampilkan nilai kecepatan Motor 1
      lcd_gotoxy(5,1);itoa(SB,MB);lcd_puts(MB);  //Tampilkan nilai kecepatan Motor 2
      OCR1A=SA; 
      OCR1B=SB;
      // Place your code here

      }
}

Terima Kasih, semoga membantu.