MODUL 4 PRAKTIKUM uP&uC




Pendahuluan

    Industri minuman modern telah mengalami perkembangan pesat dalam penggunaan kemasan plastik dan kaleng sebagai pilihan utama untuk mengemas produk-produk mereka. Kemasan ini tidak hanya menawarkan kepraktisan dalam distribusi dan penyimpanan tetapi juga memberikan keamanan dan ketahanan produk yang diperlukan dalam pasar yang semakin kompetitif.

    Di balik produksi minuman berkemasan plastik dan kaleng yang efisien ini, terdapat sistem conveyor yang menjadi tulang punggung dalam menjaga kelancaran proses di pabrik minuman. Conveyor tidak hanya bertugas untuk mengangkut kemasan dari satu tahap produksi ke tahap berikutnya, tetapi juga memainkan peran krusial dalam memastikan setiap langkah dari pengemasan hingga distribusi berjalan dengan baik.

    Pendahuluan ini akan membahas lebih dalam mengenai pentingnya kemasan plastik dan kaleng dalam industri minuman, serta peran integral conveyor dalam menjaga efisiensi dan keamanan dalam proses produksi. Selain itu, akan dibahas pula tantangan dan inovasi terkini yang dihadapi dalam mengoptimalkan sistem conveyor untuk memenuhi tuntutan pasar dan standar industri yang semakin ketat.

1. Tujuan Perancangan

Adapun tujuan :
    a. Mempermudah dalam melakukan perhitungan barang pada conveyor
    b. Membuat penghitung barang pada conveyor
    c. Menerapakan prinsip kerja aplikasi penghitung barang pada conveyor
    d. Menerapkan simulasi rangkaian aplikasi penghitung barang pada conveyor

2. Komponen

Ada beberapa komponen yang digunakan :  

 a.       HC-SR04 Ultrasonik Sensor


b.      Infrared Sensor



c.       Touch Sensor



d.      Loadcell



e.       Magnetic sensor



 

f.        Breadboard





g.      Motor DC



h.      Arduino 



i.        Liquid Crystal Display


 


 


3. Dasar Teori

a. HC-SR04 Ultrasonik Sensor

    Sensor ultrasonik HC-SR04 adalah suatu sensor yang fungsinya mengubah besaran fisis bunyi menjadi besaran listrik maupun sebaliknya. Fungsi sensor ultrasonik HC-SR04 biasa digunakan untuk mendeteksi objek yang ada di depannya dengan memanfaatkan gelombang ultrasonik.

Cara Kerja Sensor Ultrasonic HC-SR04 Arduino

    Sensor ultrasonik HC SR04 memiliki sepasang transduser ultrasonik yang berfungsi sebagai transmitter (memancarkan gelombang) dan receiver (menerima pantulan gelombang). Cara kerja sensor HC SR04 berawal dari gelombang ultrasonik berfrekuensi 40 kHz (sesuai osilator) yang dibangkitkan oleh piezoelektrik sebagai transmitter-nya. Kemudian gelombang yang terbentuk dipancarkan mengenai target. Hasil pantulan gelombang tersebut nantinya akan diterima oleh receiver piezoelektrik untuk dikalkulasikan waktu pengiriman dan waktu diterimanya gelombang pantul tersebut.

    Hasil pengalkulasian itulah nanti yang akan kita peroleh sebagai nilai jarak.Prinsip kerja sensor ultrasonik HC-SR04 kurang lebih hampir sama dengan contoh gambar kelelawar yang mendeteksi buah di depannya. Kira-kira bentuk ilustrasi cara kerja HC SR04 seperti ini.


Cara Kerja Sensor Ultrasonic HC-SR04 Arduino

    Rumus sensor ultrasonik diambil dari rumus kecepatan. Karena sudah diketahui kecepatan rambat bunyi berada di kisaran 340 m/s, maka rumus menghitung jarak sensor ultrasonik adalah:

S = 340.t / 2

Keterangan :

S= Jarak objek

t= Selisih waktu dipancarkan dan diterimanya gelombang


Spesifikasi Sensor Ultrasonik HC-SR04 Arduino

Jarak Deteksi2 - 300 cm
Akurasi Jarak3 mm
Tegangan Operasi5 Volt
Sudut Pantul< 15 derajat
Konsumsi Arus15 mA
Panjang4,5 cm
Lebar2 cm
Tinggi1,5 cm

Datasheet Sensor Ultrasonik HC-SR04

  • Pin Trig (Trigger), trigpin Arduino berfungsi untuk memicu pemancaran gelombang ultrasonik. Gelombang akan terpancarkan saat pin ini diberikan logika HIGH.
  • Pin Echo, berfungsi untuk mendeteksi pantulan gelombang ultrasonik apakah sudah diterima atau belum. Pin Echo bernilai HIGH jika gelombang pantulan belum diterima dan bernilai LOW jika pantulan sudah diterima.
  • Pin VCC, berfungsi untuk mengoneksikan sensor ke power supply 5 volt Arduino. Jadi kamu bisa langsung mengoneksikan pin VCC ke pin 5V di Arduino.
  • Pin GND, berfungsi untuk mengoneksikan sensor ke power supply ground. Sama dengan pin VCC, kamu juga bisa langsung menghubungkan pin GND ini ke pin GND Arduino
Komponen Sensor Ultrasonik HC-SR04
  • Piezoelektrik, fungsi dari komponen ini adalah mengubah energi listrik menjadi energi mekanik yang menghasilkan gelombang ultrasonik maupun sebaliknya.
  • Transmitter, yaitu komponen yang berfungsi untuk memancarkan gelombang ultrasonik yang dihasilkan oleh piezoelektrik ke objek yang ingin diukur jaraknya.
  • Receiver, berfungsi untuk menerima pantulan gelombang ultrasonik dari objek yang ingin diukur jaraknya.

b. Infrared Sensor

    Sensor IR adalah perangkat elektronik sederhana yang memancarkan dan mendeteksi radiasi IR untuk mengetahui objek/hambatan tertentu dalam jangkauannya. Beberapa fiturnya adalah sensor panas dan gerak. Sensor IR menggunakan radiasi infra merah dengan panjang gelombang antara 0,75 hingga 1000µm yang berada di antara wilayah spektrum elektromagnetik tampak dan gelombang mikro. Wilayah IR tidak terlihat oleh mata manusia. Spektrum inframerah dikategorikan menjadi tiga wilayah berdasarkan panjang gelombangnya yaitu Inframerah Dekat, Inframerah Tengah, Inframerah Jauh.
Daerah Panjang Gelombang Spektrum Inframerah :
  • Dekat IR – 0,75µm hingga 3 µm
  • Pertengahan IR – 3 µm hingga 6 µm
  • IR Jauh – > 6 µm
Prinsip Kerja Sensor Inframerah :
    Prinsip kerja dari sensor inframerah mirip dengan sensor pendeteksi gerakan. Dimana sensor akan mendeteksi pancaran gelombang mkiro inframerah yang dikeluarkan oleh suatu obyek. Sinar inframerah yang diterima oleh sensor akan diubah oleh sirkuit di dalam sensor menjadi sinyal keluaran digital yang dapat dihubungkan ke modul rangkaian mikrokontroller atau sistem alarm.

Elemen kunci dari Sistem Deteksi Inframerah adalah:

a. Pemancar IR

    IR Transmitter bertindak sebagai sumber radiasi IR. Menurut Hukum Radiasi Plank, setiap benda merupakan sumber radiasi IR pada suhu T di atas 0 Kelvin. Dalam kebanyakan kasus, radiator benda hitam, lampu tungsten, silikon karbida, laser inframerah, LED panjang gelombang inframerah digunakan sebagai sumber.

b. Media Tranmisi

    Seperti namanya, Media Transmisi menyediakan jalur untuk mencapai radiasi dari Pemancar IR ke Penerima IR. Vakum, atmosfer, dan serat optik digunakan sebagai media.

c. Penerima IR

    Umumnya penerima IR adalah dioda foto dan transistor foto. Mereka mampu mendeteksi radiasi infra merah. Oleh karena itu penerima IR juga disebut sebagai detektor IR. Berbagai penerima tersedia berdasarkan panjang gelombang, voltase dan paket. Pemancar dan Penerima IR dipilih dengan parameter yang cocok. Beberapa spesifikasi penerima yang menentukan adalah fotosensitifitas atau responsivitas, daya setara kebisingan dan deteksi.

Cara Kerja Sensor Inframerah :
  • Sumber IR (pemancar) digunakan untuk memancarkan radiasi dengan panjang gelombang yang dibutuhkan.
  • Radiasi ini mencapai objek dan dipantulkan kembali.
  • Radiasi yang dipantulkan terdeteksi oleh penerima IR.
  • Radiasi yang terdeteksi Penerima IR kemudian diproses lebih lanjut berdasarkan intensitasnya. Umumnya, output Penerima IR kecil dan amplifier digunakan untuk memperkuat sinyal yang terdeteksi.



c. Touch Sensor

    Sensor sentuh atau touch sensor adalah sensor elektronik yang bisa mendekeksi sentuhan. Sensor sentuh ini beroperasi sebagai sakelar apabila disentuh, seperti sakelar pada lampu, layar sentuh ponsel dan lain sebagainya. Sensor sentuh ini dikenal juga sebagai Sensor Taktil (Tactile Sensor). Sensor sentuh ini semakin banyak digunakan dan sudah menggeser peranan sakelar mekanik pada perangkat-perangkat elektronik.
Jenis - jenis touch sensor :
1. Sensor Kapasitif


    Sensor kapasitif adalah sensor sentuh yang sangat populer saat ini, hal ini dikarenakan sensor kapasitif lebih kuat, tahan lama serta mudah digunakan dan harganya pun yang relatif lebih murah dari sensor resistif. Smartphone saat ini sudah banyak yang menggunakan teknologi ini karena juga menghasilkan respon yang lebih akurat.

    Sensor kapasitif ini memanfaatkan sifat konduktif alami pada tubuh manusia untuk mendeteksi perubahan layar sentuhnya. Layar sentuh sensor kapasitif ini terbuat dari bahan konduktif biasanya Indium Tin Oxide (ITO) yang dilapisi oleh kaca tipis dan hanya bisa disentuh oleh jari manusia atau stylus khusus atau sarung khusus yang mempunyai sifat konduktif.

    Pada saat jari menyentuh layar, akan terjadi perubahan medan listrik pada layar sentuh tersebut dan lalu direspon oleh processor untuk membaca pergerakan jari tangan tersebut. Jadi perlu diperhatikan bahwa sentuhan kita tidak akan direspon oleh layar sensor kapasitif apabila menggunakan bahan non-konduktif sebagai pelantara jari tangan dan layar sentuh tersebut.

2. Sensor Resistif


    Sensor sentuh resistif ini tidak tergantung pada sifat listrik yang terjadi pada konduktivitas pelat logam. Sensor resistif bekerja dengan mengukur tekanan yang diberikan pada permukaannya. Karena tidak perlu mengukur perbedaan kapasitansi, sensor sentuh resistif ini bisa beroperasi pada bahan non-konduktif seperti pena, stylus atau jari di dalam sarung tangan.

    Sensor sentuh ini terdiri dari dua lapisan konduktif yang dipisahkan oleh jarak atau cela yang sangat kecil. Dua lapisan konduktif (lapisan atas dan lapisan bawah) ini umumnya terbuat dari sebuah film. Film-film pada umumnya dilapisi oleh Indium Tin Oxide yang merupakan konduktor listrik yang baik dan transparan. Cara kerjanya hampir sama dengan sebuah sakelar, pada saat film lapisan atas mendapatkan tekanan tertentu baik dengan jari ataupun stylus, maka film lapisan atas akan bersentuhan dengan film lapisan bawah.

    Sehingga menimbulkan aliran listrik pada titik koordinat tertentu layar tersebut serta memberikan signal ke prosesor untuk melakukan proses selanjutnya.
3. Multi Touch

    
Multi touch layar sentuh merupakan teknologi layar sentuh yang sudah mengalami perkembangan. Kelebihan yang dimiliki oleh layar sentuh ini yaitu dapat disentuh oleh lebih dari satu jari. Multi touch ini dapat disentuh hingga puluhan jari dari beberapa orang berbeda sekaligus secara bersamaan.

    Multi touch ini dapat digunakan untuk mengecilkan, membesarkan, mengubah posisi dan bahkan memindahkan posisi suatu objek pada layar monitor seperti foto atau games. Multi touch ini umumnya banyak digunakan pada komputer, handphone, MP3 player dan lain sebagainya.

4. Surface Acoustic Wave


    Untuk dapat mendeteksi kejadian pada permukaan layarnya, sistem teknologi ini biasanya menggunakan gelombang ultrasonik. Dalam monitornya terdapat dua tranduncer, yakni pengirim dan penerima sinyal ultrasonik. Bahkan dilengkapi juga dengan sebuah reflektor yang mempunyai fungsi untuk mencegah gelombang ultrasonik agar tetap berada pada area layar monitor.

    Kedua transducer tersebut dipasang pada empat sisi, dua vertikal dan dua horizontal. Jika panel touchnya tersentuh langsung, maka bagian dari gelombang tersebut nantinya ada yang diserap oleh sentuhan tersebut. Misalnya seperti terhalang oleh tangan, stylus dan masih banyak lagi. Sentuhan ini membuat adanya perubahan berupa gelombang yang dipancarkan. Perubahan gelombang ultrasonik yang sudah terjadi kemudian akan diterima oleh receiver dan diterjemahkan langsung dalam bentuk pulsa listrik.

    Lalu informasi sentuhan ini akan mengalami perubahan menjadi suatu data yang akan diteruskan ke controller untuk diproses secara lebih lanjut. Data yang dihasilkan oleh sentuhan tersebut yaitu data mengenai posisi tangan yang menyentuh sinyal ultrasonik secara langsung. Apabila hal ini dilakukan secara kontinyu, maka akan ada banyak sensor gelombang ultrasonik pada media yang sudah disentuhnya.

Cara Kerja dan Komponen Layar Sentuh :

    Layar sentuh umumnya mempunyai sensor sentuh, pengontrol dan driver perangkat lunak sebagai tiga komponen utama. Layar sentuh diperlukan untuk dikombinasikan dengan tampilan dan PC untuk membuat sistem layar sentuh.

1. Sensor Sentuh
    Sensor sentuh umumnya mempunyai arus lsitrik atau sinyal melewatinya serta menyentuh layar menyebabkan perubahan sinyal. Perubahan ini digunakan untuk menentukan lokasi sentuhan layar

2. Driver Perangkat Lunak
    Driver perangkat lunak ini memungkinkan komputer dan layar sentuh untuk bekerja bersama. Ia memberi tahu kepada OS cara berinteraksi informasi acara sentuh yang dikirm dari pengontrol.

3. Pengendali (Controller)
    Pengendali (Controller) akan dihubungkan antara sensor sentuh dan PC. Dibutuhkan informasi dari sensor dan menerjemahkannya untuk memahami PC.  Pengendali atau Controller ini menentukan jenis koneksi apa yang dibutuhkan.

D.Sensor Load cell

Sensor load cell merupakan sensor yang dirancang untuk mendeteksi tekanan atau berat sebuah beban, sensor load cell umumnya digunakan sebagai komponen utama pada sistem timbangan digital dan dapat diaplikasikan pada jembatan timbangan yang berfungsi untuk menimbang berat dari truk pengangkut bahan baku, pengukuran yang dilakukan oleh Load Cell menggunakan prinsip tekanan.

Prinsip kerja load cell ketika mendapat tekanan beban.Ketika bagian lain yang lebih elastic mendapat tekanan, maka pada sisi lain akan mengalami perubahan regangan yang sesuai dengan yang dihasilkan oleh strain gauge, hal ini terjadi karena ada gaya yang seakan melawan pada sisi lainnya. Perubahan nilai resistansi yang diakibatkan oleh perubahan gaya diubah menjadi nilai tegangan oleh rangkaian IC HX711. Dan berat dari objek yang diukur dapat diketahui dengan mengukur besarnya nilai tegangan yang timbul.

 

Beberapa karakteristik yang terdapat pada load cell sensor antara lain adalah:

- Tegangan Operasi: 5V DC (umum untuk load cell kecil)

- Rentang Kapasitas: Bervariasi (misalnya, 1kg, 5kg, 10kg, hingga beberapa ton)

- Tegangan Output: 1 mV/V hingga 3 mV/V (bergantung pada beban penuh)

- Non-linearitas: ±0.03% hingga ±0.1% dari kapasitas penuh

- Histeresis: ±0.02% hingga ±0.05% dari kapasitas penuh

- Suhu Operasi: -10°C hingga 40°C (umum untuk load cell kecil)

 

Macam-macam loadcell

1. Loadcell Single Point Load cell bench scale. Loadcell ini dipasang pada bagian tengah platform timbangan.

2. Loadcell Shear Beam Load cell ini dipakai untuk floor scale.

3. Loadcell Compress Cara penggunaan Load cell ini adalah dengan menekan bagian atasnya. Biasanya load cell jenis ini di pakai untuk timbangan truck.

4. Loadcell Model S 3 Dinamakan Loadcell S karena bentuknya menyerupai huruf "S". cara kerja dari Load cell ini tidak di tekan melainkan ditarik sisi atas dan bawahnya. Sisi atas dikaitkan dengan gantungan sedangkan bagian bawahnya dikaitkan dengan barang yang akan ditimbang.

5. Loadcell Double Ended Load cell ini bekerja dengan menekan sisi tengahnya. Loadcell ini dipakai untuk timbangan truck.

 

Grafik Respon Sensor Load Cell


d. Breadboard

    Breadboard Arduino adalah sejenis papan roti yang biasanya digunakan untuk membuat prototype rangkaian elektronik. Beberapa orang kadang menyebutnya project board atau bahkan  protoboard (prototype board). Pada dasarnya breadboard adalah board yang digunakan untuk membuat rangkaian elektronik tanpa harus merepotkan pengguna untuk menyolder. Biasanya papan breadboard ini digunakan untuk membuat rangkaian elektronik sementara untuk tujuan uji coba atau prototype.

Fungsi Breadboard :

    Kegunaan breadboard yaitu sebagai media penghantar (konduktor listrik) sekaligus tempat kabel jumper dilekatkan. Sehingga arus dari satu komponen bisa terdistribusi dengan baik sesuai keinginan ke komponen lain tanpa harus merepotkan pengguna untuk melakukan penyolderan atau melakukan bongkar pasang.

    Salah satu kelebihan tersendiri dari penggunaan breadboard adalah komponen-komponen yang telah dirakit tak akan rusak dan mudah untuk dibongkar pasang. Ini karena papan breadboard merupakan papan tanpa solder (solderless).
gambar breadboard

Cara Kerja Breadboard :

    Breadboard bisa dideskripsikan sebagai papan yang memiliki lubang koneksi berdasarkan pola tertentu. Untuk menghubungkan antara satu lubang dengan lubang yang lain, maka di bagian bawah lubang tersebut terdapat logam konduktor listrik yang diposisikan secara khusus. Ini berguna untuk memudahkan pengguna dalam membuat rangkaian. Logam konduktor yang ada di dalam breadboard umumnya seperti ini:

Cara Kerja Breadboard

Kira-kira posisi logam jalur breadboard bisa digambarkan sebagai berikut:

prinsip kerja breadboard

Berdasarkan gambar di atas, fungsi dari masing-masing jalur koneksi pada breadboard dengan keterangan warnanya yaitu sebagai berikut:
  • Jalur warna merah, digunakan untuk menempatkan pin 5V atau kutub positif dari arduino untuk dihubungkan ke kutub positif komponen lain.
  • Jalur warna biru, digunakan untuk menempatkan pin GND atau kutub negatif dari arduino untuk dihubungkan ke kutub negatif komponen lain.
  • Jalur warna hijau, digunakan untuk menempatkan pin digital dari Arduino untuk dihubungkan ke komponen lain.
Selain itu, di bagian tengah papan breadboard terdapat ruang kosong yang masing-masing pinggirannya terdapat ujung jalur vertikal. Fungsi dari ruang kosong ini adalah untuk menancapkan langsung ic component.

Jenis-jenis Breadboard

Beberapa ukuran breadboard yang tersedia di pasaran antara lain:
  • Mini Breadboard, yaitu jenis yang paling kecil diantara semua breadboard dan memiliki sekitar 170 titik koneksi.
mini breadboard
  • Medium Breadboard, yaitu jenis breadboard ukuran sedang yang kadang juga disebut half breadboard karena memiliki ukuran dan jumlah titik koneksinya setengah dari jumlah titik koneksi breadboard ukuran besar. Yaitu 400 titik koneksi.
medium breadboard
  • Large Breadboard, yaitu jenis yang ukurannya paling besar diantara semua jenis breadboard dan memiliki sekitar 830 titik koneksi.
large breadboard
e. Motor DC


    Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk dapat menggerakannya.





    Motor Listrik DC atau DC Motor ini menghasilkan sejumlah putaran per menit atau biasanya dikenal dengan istilah RPM (Revolutions per minute) dan dapat dibuatberputar searah jarum jam maupun berlawanan arah jarum jam apabila polaritas listrik yang diberikan pada Motor DC tersebut dibalikan. Kebanyakan Motor Listrik DC memberikan kecepatan rotasi sekitar 3000 rpm hingga 8000 rpm dengan tegangan operasional dari 1,5V hingga 24V. Apabila tegangan yang diberikan ke Motor Listrik DC lebih rendah dari tegangan operasionalnya maka akan dapat memperlambat rotasi motor DC tersebut sedangkan tegangan yang lebih tinggi dari tegangan operasional akan membuat rotasi motor DC menjadi lebih cepat. Namun ketika tegangan yang diberikan ke Motor DC tersebut turun menjadi dibawah 50% dari tegangan operasional yang ditentukan maka Motor DC tersebut tidak dapat berputar atau terhenti. Sebaliknya, jika tegangan yang diberikan ke Motor DC tersebut lebih tinggi sekitar 30% dari tegangan operasional yang ditentukan, maka motor DC tersebut akan menjadi sangat panas dan akhirnya akan menjadi rusak.


g. Arduino

    Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain.




Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :

 

Arduino Uno

Bagian-bagian arduino uno:


-Power USB : Digunakan untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.
-Power jack : Supply atau sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
-Crystal Oscillator : Kristal ini digunakan sebagai layaknya detak jantung pada Arduino. Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
-Reset : Digunakan untuk mengulang program Arduino dari awal atau Reset.
-Digital Pins I / O : Papan Arduino UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika ( 0 atau 1 ). Pin berlabel " ~ " adalah pin-pin PWM ( Pulse Width Modulation ) yang dapat digunakan untuk menghasilkan PWM.
-Analog Pins : Papan Arduino UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai digital.
-LED Power Indicator : Lampu ini akan menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.


Bagian - bagian pendukung:


-RAM : RAM (Random Access Memory) adalah tempat penyimpanan sementara pada komputer yang isinya dapat diakses dalam waktu yang tetap, tidak memperdulikan letak data tersebut dalam memori atau acak. Secara umum ada 2 jenis RAM yaitu SRAM (Static Random Acces Memory) dan DRAM (Dynamic Random Acces Memory).
-ROM : ROM (Read-only Memory) adalah perangkat keras pada computer yang dapat menyimpan data secara permanen tanpa harus memperhatikan adanya sumber listrik. ROM terdiri dari Mask ROM, PROM, EPROM, EEPROM.

Block Diagram Mikrokontroler ATMega 328P pada Arduino UNO

Adapun block diagram mikrokontroler ATMega 328P dapat dilihat pada gambar berikut:



    Block diagram dapat digunakan untuk memudahkan / memahami bagaimana kinerja dari mikrokontroler ATMega 328P.

Pin-pin ATMega 328P:

            Rangkaian Mikrokontroler ATMega 328P pada Arduino UNO



h. Liquid Crystal Display (LCD)

    Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untukmenampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter). Struktur LCD dapat dilihat pada gambar berikut.

Struktur LCD

Keterangan:

1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.

2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).

3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).

4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).

5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.

6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
Module circuit dari LCD dan kaki-kakinya dapat dilihat melalui gambar berikut.



TEXT LCD Module Circuit



j. Komponen lainnya

    a. PWM (Pulse Width Modulation)

       PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (duty cylce) dengan nilai amplitudo dan frekuensi yang tetap. Satu siklus pulsa merupakan kondisi high kemudian berada di zona transisi ke kondisi low. Lebar pulsa PWM berbanding lurus dengan amplitudo sinyal asli yang belum termodulasi.

      Pada board Arduino Uno, pin yang bisa dimanfaatkan untuk PWM adalah pin yang diberi tanda tilde (~), yaitu pin 3, 5, 6, 9, 10, dan pin 11. Pin-pin tersebut merupakan pin yang bisa difungsikan untuk input analog atau output analog. Oleh sebab itu, jika akan menggunakan PWM pada pin ini, bisa dilakukan dengan perintah analogWrite();

    PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.


Siklus Sinyal PWM pada Arduino

    b. Analog to Digital Converter

    ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.
    
    Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt.

    Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);

 


 

 

         Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. Hampir semua perangkat elektronik yang portabel seperti Handphone, Laptop, Senter, ataupun Remote Control menggunakan Baterai sebagai sumber listriknya. Dengan adanya Baterai, kita tidak perlu menyambungkan kabel listrik untuk dapat mengaktifkan perangkat elektronik kita sehingga dapat dengan mudah dibawa kemana-mana. Dalam kehidupan kita sehari-hari, kita dapat menemui dua jenis Baterai yaitu Baterai yang hanya dapat dipakai sekali saja (Single Use) dan Baterai yang dapat di isi ulang (Rechargeable).

4. Listing Program

Program untuk Arduino Master :

//MASTER

#include <LiquidCrystal_I2C.h>

#include <Wire.h>

#include "HX711.h"

 

// Define HX711 pins

#define LOADCELL_DOUT_PIN A1

#define LOADCELL_SCK_PIN A2

 

// Define motor control pins

int enA = 10;

int in1 = 13;

int in2 = A0;

int incomingByte = 0;

// Define ultrasonic sensor pins

#define trigPin 8

#define echoPin 9

 

// Create an LCD object with I2C address 0x27 and size 16x2

LiquidCrystal_I2C lcd(0x27, 16, 2);

 

// Initialize HX711 object

HX711 scale;

 

// Initialize variables

float calibration_factor = -7050; // You need to set this calibration factor properly

float weight = 0;

int itemCount = 0; // Initialize item count

char command;

 

void setup() {

  Serial.begin(9600); // Initialize UART communication

  // Initialize motor control pins

  pinMode(enA, OUTPUT);

  pinMode(in1, OUTPUT);

  pinMode(in2, OUTPUT);

 

  // Turn off motors - Initial state

  digitalWrite(in1, LOW);

  digitalWrite(in2, LOW);

 

  // Initialize ultrasonic sensor pins

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

 

  // Initialize LCD

  lcd.init();

  lcd.backlight();

 

  // Initialize HX711

  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

  scale.set_scale();

  scale.tare(); // Reset the scale to zero

 

  // Calibrate the scale

  calibrate();

}

 

void directionControl() {

  analogWrite(enA, 255); // Set motor to maximum speed

  digitalWrite(in1, HIGH);

  digitalWrite(in2, LOW);

  delay(2000);

}

 

void speedControl() {

  digitalWrite(in1, LOW);

  digitalWrite(in2, HIGH);

 

  // Accelerate from zero to maximum speed

  for (int i = 0; i < 256; i++) {

    analogWrite(enA, i);

    delay(20);

  }

 

  // Decelerate from maximum speed to zero

  for (int i = 255; i >= 0; --i) {

    analogWrite(enA, i);

    delay(20);

  }

 

  // Turn off motors

  digitalWrite(in1, LOW);

  digitalWrite(in2, LOW);

}

 

void calibrate() {

  lcd.clear();

  lcd.print("Calibrating...");

  lcd.setCursor(0, 1);

  lcd.print("Please Wait...");

 

  delay(5000); // Wait for a while to place the calibration weight

 

  // After placing the weight, set the calibration factor

  scale.set_scale(calibration_factor);

  scale.tare(); // Reset the scale to zero after calibration

 

  lcd.clear();

  lcd.print("Calibration Done");

  delay(2000);

  lcd.clear();

}

 

void loop() {

  weight = scale.get_units(10); // Get weight with average of 10 readings

 

  // Check if weight exceeds 30 grams and update item count

  if (weight > 30) {

    itemCount++;

  }

 

  // Display weight on LCD

  lcd.setCursor(0, 1);

  lcd.print("                "); // Clear previous value

  lcd.setCursor(0, 1);

  lcd.print("Berat = ");

  lcd.print(weight);

  lcd.print(" g");

 

  // Measure distance using ultrasonic sensor

  long duration, distance;

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);

  distance = (duration / 2) / 29.1;

 

  // If the distance is less than 10 cm, activate the motor

  if (distance < 10) {

    directionControl();

    delay(1000); 

    lcd.clear();

    delay(400);

    lcd.clear();

    delay(200);

  }

 

  // Display distance and item count on LCD

  lcd.setCursor(0, 0);

  lcd.print("J = ");

  lcd.print(itemCount);

  lcd.print(" D= ");

  lcd.print(distance);

  lcd.print(" cm");

 

  // Print distance and item count to serial monitor

  Serial.print("Distance: ");

  Serial.print(distance);

  Serial.print(" cm, Item Count: ");

  Serial.println(itemCount);

 

  // Check for reset command from slave

  if (Serial.available()) {

      incomingByte = Serial.read();

        if (incomingByte == 'R') {

            itemCount = 0;

            lcd.clear(); // Membersihkan LCD

            lcd.setCursor(0, 0);

            lcd.print("J = ");

    }

  }

 

  delay(100);

}

Program untuk Arduino Slave :

#include <LiquidCrystal_I2C.h>

#include <Wire.h>

 

// Alamat I2C dan ukuran LCD (16x2)

LiquidCrystal_I2C lcd(0x27, 16, 2);

 

const int sensorInduktifPin = 2;

const int sensorInfraredPin = 3;

const int sensorSentuhPin = 4;

 

int jumlahProduk = 0;

int jumlahBesi = 0;

 

void setup() {

  Serial.begin(9600); // Initialize primary UART communication

  pinMode(sensorInduktifPin, INPUT_PULLUP);

  pinMode(sensorInfraredPin, INPUT_PULLUP);

  pinMode(sensorSentuhPin, INPUT_PULLUP);

 

  // Inisialisasi LCD

  lcd.init();

  lcd.backlight();

 

  // Menampilkan jumlah produk awal

  lcd.setCursor(0, 0);

  lcd.print("Jumlah Produk: ");

  lcd.setCursor(0, 1);

  lcd.print("Jumlah Besi: ");

}

 

void loop() {

  bool deteksiLogam = digitalRead(sensorInduktifPin);

  bool deteksiInfrared = digitalRead(sensorInfraredPin);

  bool deteksiSentuh = digitalRead(sensorSentuhPin);

 

  if (deteksiInfrared == LOW) {

    jumlahProduk++;

    lcd.setCursor(14, 0);

    lcd.print("    "); // Menghapus nilai sebelumnya

    lcd.setCursor(14, 0);

    lcd.print(jumlahProduk);

    delay(500); // Debouncing dan mencegah penghitungan ganda

  }

 

  if (deteksiLogam == LOW) {

    jumlahBesi++;

    lcd.setCursor(12, 1);

    lcd.print("    "); // Menghapus nilai sebelumnya

    lcd.setCursor(12, 1);

    lcd.print(jumlahBesi);

    delay(500); // Debouncing dan mencegah penghitungan ganda

  }

 

  if (deteksiSentuh == HIGH) {

    jumlahProduk = 0;

    jumlahBesi = 0;

    lcd.clear(); // Membersihkan LCD

    lcd.setCursor(0, 0);

    lcd.print("Jumlah Produk: ");

    lcd.setCursor(14, 0);

    lcd.print("    "); // Menghapus nilai sebelumnya

    lcd.setCursor(0, 1);

    lcd.print("Jumlah Besi: ");

    lcd.setCursor(12, 1);

    lcd.print("    "); // Menghapus nilai sebelumnya

   

    // Send reset command to master via Serial1

    Serial.write('R');

  }

 

  delay(100); // Sedikit penundaan untuk stabilitas

}

5. Flowchart





6. Rangkaian Simulasi





7. Hardware dan Video

Hardware :






Vidio Rangkaian :









10. Link Download

Download rangkaian Proteus klik disini
Download HMTL klik disini
Download listing program klik disini
Download video simulasi rangkaian klik disini
  • Download datasheet 
Download datasheet Arduino UNO klik disini
Download datasheet ultrasonik klik disini
Download datasheet Infrared Sensor klik disini
Download datasheet Touch Sensor  klik disini
Download datasheet magnetic klik disini
Download datasheet load cell klik disini
Download datasheet LCD klik disini
Download datasheet Relay klik disini
Download datasheet HX7111 klik disini
Download datasheet Motor Servo klik disini



Tidak ada komentar:

Posting Komentar