BAHAN PRESENSTASI UNTUK MATA KULIAH ELEKTRONIKA 2022




Oleh :

Adib Naufal Sayyid

2210953002 


Dosen Pengampu :

Darwison, M.T.

Rizki Wahyu Pratama, M.T


Referensi:

a. Darwison, 2010, ” Teori, Simulasi, dan Aplikasi Elektronika ” ”, Jilid 1, ISBN: 978-602-9081-10-7, CV Ferila, Padang. 
b. Darwison, 2010, ” Teori, Simulasi, dan Aplikasi Elektronika ””,Jilid 2,  ISBN: 978-602-9081-10-8, CV Ferila, Padang.
c. Robert L. Boylestad and Louis Nashelsky, Electronic Devices and Circuit Theory, Pearson, 2013 
d. Jimmie J. Cathey, Theory and Problems of Electronic Device and Circuit, McGraw Hill, 2002.
e. Keith Brindley, Starting Electronics, Newness 3rd Edition, 2005.
f. Ian R. Sinclair and John Dunton, Practical Electronics Handbook, Newness, 2007.
g. John M. Hughes, Practical Electronics: Components and Techniques, O’Reilly Media, 2016.
 


Jurusan Teknik Elektro
Fakultas Teknik
Padang 2022

Laporan Akhir Modul 4

 

Laporan Akhir : Modul 4


 

PENGHITUNG BARANG OTOMATIS PADA CONVEYOR




1. Pendahuluan [kembali]

        Pada era industri modern saat ini, proses otomatisasi menjadi salah satu solusi yang banyak diterapkan untuk meningkatkan efisiensi, kecepatan, dan ketepatan dalam berbagai sektor, termasuk industri pengolahan hasil pertanian dan buah-buahan. Salah satu tantangan dalam industri ini adalah proses penyortiran buah berdasarkan kriteria tertentu seperti berat dan warna. Proses penyortiran yang dilakukan secara manual memiliki berbagai kelemahan, di antaranya memerlukan banyak tenaga kerja, waktu yang relatif lama, serta rentan terhadap kesalahan manusia (human error).

Seiring dengan perkembangan teknologi mikrokontroler, berbagai sistem otomasi berbasis sensor dan aktuator mulai banyak dikembangkan untuk mendukung proses produksi yang lebih efektif dan efisien. Sistem sortasi buah otomatis merupakan salah satu implementasi teknologi tersebut, di mana buah dapat disortir secara real-time berdasarkan parameter berat dan warna tanpa perlu intervensi manual.

Pada proyek ini, dirancang dan dibangun sebuah sistem sortasi buah otomatis yang menggunakan dua mikrokontroler, yaitu Raspberry Pi Pico dan STM32F103C8T6. Sistem ini memanfaatkan beberapa jenis sensor, yaitu Load Cell dengan modul HX711 untuk membaca berat buah, sensor warna TCS3200 untuk mendeteksi warna buah, serta sensor inframerah (IR) untuk menghitung jumlah buah yang melewati jalur sortir. Selain itu, digunakan motor servo untuk mengatur arah buah ke jalur sortir yang sesuai, serta LCD 16x2 untuk menampilkan jumlah buah yang telah diproses.

Dengan adanya sistem ini, diharapkan dapat memberikan solusi penyortiran buah yang lebih cepat, akurat, dan efisien, serta dapat dijadikan sebagai prototipe awal untuk pengembangan sistem otomatisasi serupa di bidang industri pengolahan hasil pertanian.

Latar Belakang

Industri pertanian dan pengolahan hasil perkebunan di Indonesia memiliki potensi yang sangat besar. Salah satu produk hasil pertanian yang memiliki nilai ekonomi tinggi adalah buah-buahan. Untuk menjaga kualitas dan nilai jual produk, proses sortasi menjadi tahapan penting yang harus dilakukan sebelum buah dipasarkan. Penyortiran buah umumnya dilakukan berdasarkan beberapa parameter seperti ukuran, berat, dan warna. Saat ini, sebagian besar proses sortasi buah di tingkat industri kecil hingga menengah masih dilakukan secara manual, sehingga memerlukan waktu yang cukup lama dan rentan terjadi kesalahan.

Kemajuan teknologi di bidang mikrokontroler dan sensor membuka peluang baru dalam pengembangan sistem sortasi buah otomatis. Dengan memanfaatkan berbagai jenis sensor dan aktuator, proses penyortiran dapat dilakukan secara otomatis, lebih cepat, akurat, dan efisien. Pada proyek ini, dikembangkan sistem sortasi buah berbasis Raspberry Pi Pico dan STM32F103C8T6, yang mampu melakukan penyortiran buah berdasarkan parameter berat dan warna. Sistem ini dilengkapi dengan sensor Load CellTCS3200sensor inframerah, serta motor servo untuk mengatur arah jalur sortir buah. Informasi hasil sortir kemudian ditampilkan melalui LCD 16x2 secara real-time.

Diharapkan, sistem ini dapat menjadi solusi praktis dan ekonomis bagi pelaku industri pengolahan hasil pertanian dalam meningkatkan produktivitas dan kualitas produk, sekaligus sebagai sarana pembelajaran dalam pengembangan sistem otomasi berbasis mikrokontroler.

Rumusan Masalah

Berdasarkan latar belakang di atas, maka rumusan masalah dalam proyek ini adalah:

  1. Bagaimana merancang sistem sortasi buah otomatis berbasis Raspberry Pi Pico dan STM32F103C8T6?

  2. Bagaimana mengukur berat buah menggunakan sensor Load Cell dengan modul HX711?

  3. Bagaimana mendeteksi warna buah menggunakan sensor TCS3200?

  4. Bagaimana mengatur sistem sortir otomatis menggunakan motor servo berdasarkan hasil deteksi berat dan warna buah?

  5. Bagaimana menampilkan jumlah buah yang telah disortir pada LCD 16x2 secara real-time?




2. Tujuan 
[Kembali]

Adapun tujuan dari proyek sistem sortasi buah otomatis ini adalah:

  1. Merancang dan membangun sistem sortasi buah berbasis Raspberry Pi Pico dan STM32F103C8T6.

  2. Mengimplementasikan sensor Load Cell untuk membaca berat buah yang masuk ke sistem.

  3. Menggunakan sensor TCS3200 untuk mendeteksi warna buah secara otomatis.

  4. Mengendalikan motor servo untuk mengatur arah jalur sortir sesuai hasil deteksi berat dan warna buah.

  5. Menampilkan jumlah buah yang berhasil disortir ke dalam LCD 16x2 secara real-time.

  6. Meningkatkan efisiensi dan akurasi dalam proses penyortiran buah secara otomatis.

  7. Memenuhi project demo modul 4 praktikum mikroprosesor dan mikrokontroller.


3. Alat dan Bahan  [Kembali]
A. Alat 

1. Power Supply
    Power supply, atau pasokan daya, adalah sebuah perangkat elektronik yang menyediakan energi listrik ke perangkat atau sistem lainnya. Tujuan utamanya adalah untuk mengubah arus listrik dari sumber listrik (misalnya, listrik AC dari saluran listrik rumah tangga) menjadi bentuk yang sesuai untuk digunakan oleh komponen elektronik lain, seperti komputer, perangkat elektronik, atau mesin industri

2. Baterai  

 
        Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik.
Baterai bertujuan untuk memberikan tenaga listrik ke rangkaian agar rangkaian dapat hidup dengan baik.


B. Bahan
1. STM32103C8
STM32F103C8 adalah mikrokontroler berbasis ARM Cortex-M3 yang dikembangkan oleh STMicroelectronics. Mikrokontroler ini sering digunakan dalam pengembangan sistem tertanam karena kinerjanya yang baik, konsumsi daya yang rendah, dan kompatibilitas dengan berbagai protokol komunikasi. Pada praktikum ini, kita menggunakan STM32F103C8 yang dapat diprogram menggunakan berbagai metode, termasuk komunikasi serial (USART), SWD (Serial Wire Debug), atau JTAG untuk berhubungan dengan komputer maupun perangkat lain. Adapun spesifikasi dari STM32F4 yang digunakan dalam praktikum ini adalah sebagai berikut:

 

2. Raspberry Pi Pico

Raspberry Pi Pico adalah papan rangkaian elektronik yang di dalamnya terdapat komponen utama chip mikrokontroler RP2040, yang dirancang dan diproduksi oleh Raspberry Pi Foundatio. Tidak seperti komputer mini raspberry Pi lainnya yang menjalankan sistem operasi seperti Linux, Pico dirancang untuk tugas-tugas yang lebih sederhana dan langsung (embedded system), seperti membaca sensor, mengontrol perangkat, atau melakukan pengolahan data pada tingkat hardware.

Adapun spesifikasi dari Raspberry Pi Pico adalah sebagai berikut:

3. Load Cell Sensor (5 kg)


Features and Specifications :

  • ·       Beban Maksimum: 1000 gram (1 Kg)

    ·       Rentang Tegangan Keluaran: 0,1 mV ~ 1,0 mV / V (skala 1:1000 terhadap tegangan masukan, margin kesalahan ≤ 1,5%)

    ·       Impedansi Masukan (Input Impedance): 1066 Ω ±20%

    ·       Impedansi Keluaran (Output Impedance): 1000 Ω ±10%

    ·       Tegangan Masukan Maksimum: 10 Volt DC

    ·       Rentang Suhu Operasional: -20 ~ +65°C

    ·       Material: Aluminium Alloy

    ·       Ukuran: 60 x 12,8 x 12,8 mm

    ·       Berat: 23 gram 






8. Motor Servo

Dimensions & Spesifications :



9. Motor DC






Spesifikasi :



10. LED

Tegangan kerja / jatuh tegangan pada sebuah menurut warna yang dihasilkan:
  1. Infra merah : 1,6 V
  2. Merah : 1,8 V – 2,1 V
  3. Oranye : 2,2 V
  4. Kuning : 2,4 V
  5. Hijau : 2,6 V
  6. Biru : 3,0 V – 3,5 V
  7. Putih : 3,0 – 3,6 V
  8. Ultraviolet : 3,5 V

11. LCD (LM016L)

    LCD atau Liquid Crystal Display adalah suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk elektronik lainnya.

Spesifikasi :
1. Module size : 84W x 44H x 10.5T (max.) mm
2. Effective display area : 61W x 15.8H mm
3. Character size ( 5 x 7 dots ) : 2.96W X 4.86H mm
4. Character pitch : 3.55 mm
5. Dot size : 0.56W x 0.66H mm
6. Weight : about 35g
7. Ta = 25°C, VDD = 5.0 V  ± 0.25 V 
8. Input "high" voltage (ViH) = 2.2 Vmin  
9. Input "Iow" voltage (ViL) = 0.6 Vmax

- Breadboard

 

    - Jumper Wire

    


    - Power Supply

 

b. Mikrokontroller:

    -STM32F103C8









  -Raspberry Pi Pico





 

c. Input:

    - Sensor IR (Infra Red)

 

    -Sensor TCS3200

-Sensor Loadcell






 

d. Output:

   

    - LCD 16x2

    - Motor Servo


4. Dasar Teori [back]

    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.

Duty Cycle adalah perbandingan antara waktu ON (lebar pulsa High) dengan perioda. Duty Cycle biasanya dinyatakan dalam bentuk persen (%).


Gambar 1. Duty Cycle

·       Duty Cycle = tON / ttotal

·       tON = Waktu ON atau Waktu dimana tegangan keluaran berada pada posisi tinggi (high atau 1) 

·       tOFF = Waktu OFF atau Waktu dimana tegangan keluaran berada pada posisi rendah (low atau 0) 

·       ttotal = Waktu satu siklus atau penjumlahan antara tON dengan tOFF atau disebut juga dengan “periode satu gelombang” 

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.


Gambar 2. Siklus Sinyal PWM pada Arduino

 

ADC (Analog 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);


KOMUNIKASI 

1)    Universal Asynchronous Receiver Transmitter (UART)

UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.


Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data bus penerima.

 

2)    Serial Peripheral Interface (SPI)

Serial Peripheral Interface (SPI) merupakan salah satu mode komunikasi serial synchrounous kecepatan tinggi yang dimiliki oleh ATmega 328. Komunikasi SPI membutuhkan 3 jalur yaitu MOSI, MISO, dan SCK. Melalui komunikasi ini data dapat saling dikirimkan baik antara mikrokontroller maupun antara mikrokontroller dengan peripheral lain di luar mikrokontroler.

·       MOSI : Master Output Slave Input Artinya jika dikonfigurasi sebagai master maka pin MOSI sebagai output tetapi jika dikonfigurasi sebagai slave maka pin MOSI sebagai input.

·       MISO : Master Input Slave Output Artinya jika dikonfigurasi sebagai master maka pin MISO sebagai input tetapi jika dikonfigurasi sebagai slave maka pin MISO sebagai output.

·       SCLK : Clock Jika dikonfigurasi sebagai master maka pin CLK berlaku sebagai output tetapi jika dikonfigurasi sebagai slave maka pin CLK berlaku sebagai input.

·       SS/CS : Slave Select/ Chip Select adalah jalur master memilih slave mana yang akan dikirimkan data.

Cara Kerja Komunikasi SPI :


Sinyal clock dialirkan dari master ke slave yang berfungsi untuk sinkronisasi. Master dapat memilih slave mana yang akan dikirimkan data melalui slave select, kemudian data dikirimkan dari master ke slave melalui MOSI. Jika master butuh respon data maka slave akan mentransfer data ke master melalui MISO

 

3)    Inter Integrated Circuit (I2C)

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa informasi data antara I2C dengan pengontrolnya.

Cara Kerja Komunikasi I2C :


Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi start, Address Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2,  dan kondisi Stop.

·       Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.

·       Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.

·       R/W bit berfungsi untuk menentukan apakah master mengirim data ke slave atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave)

·       ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telah diterima receiver.


INFRARED SENSOR

Sensor Infrared adalah komponen elektronika yang dapat mendeteksi benda ketika cahaya infra merah terhalangi oleh benda. Sensor infared terdiri dari led infrared sebagai pemancar dan fototransistor sebagai penerima cahaya infra merah. 


            Cara Kerja Sensor Infrared:




Prinsip kerja rangkaian sensor infrared berdasarkan pada gambar 3. Adalah ketika cahaya infra merah diterima oleh fototransistor maka basis fototransistor akan mengubah energi cahaya infra merah menjadi arus listrik sehingga basis akan berubah seperti saklar (swith closed) atau fototransistor akan aktif (low) secara sesaat.


 

         LOAD CELL SENSOR

Sensor Loadcell merupakan transduser yang bekerja sebagai konversi dari berat benda menjadi elektrik, perubahan ini terjadi karena terdapat resistansi pada strain gauge. Pada satu sensor loadcell memiliki 4 susunan strain. Sensor ini memiliki nilai konduktansinya berbanding lurus dengan gaya/beban yang diterima dan bersifat resistif. Jika loadcell tidak ada beban besar resistansi nya akan bernilai sama pada setiap sisinya, tetapi ketika loadcell memiliki beban maka nilai resistansinya akan menjadi tidak seimbang. Proses inilah yang dimanfaatkan untuk mengukur berat pada suatu benda. 



 

. Prinsip Kerja Sensor Loadcell



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.

Sensor berat atau sensor loadcell memilki prinsip kerja berupa timbangan digital yaitu dengan cara memberikan output pada tegangan dari adanya perubahan pada resistansi yang dihasilkan pada perubahan posisi penyangga beban. Sehingga perubahan itu akan menghasilkan output pada amplifier. (Priskila M.N. Manege, dkk).

Loadcell merupakan komponen utama pada timbangan yang berupa digital. Cara kerja sensor loadcell bila diberikan suatu beban pada inti besi penimbangan maka yang terjadi adalah nilai dari strain gauge dan resistansi akan berubah melalui empat kabel pada komponen sensor loadcell. Yang dimana dua kabel tersebut merupakan eksitasi dan dua kabel sebagai sinyal keluaran yang berfungsi sebagai penghubung ke kontrol (Mirfan).

Loadcell atau yang lebih dikenal dengan sensor berat merupakan alat pendeteksi perubahan pada massa yang dihasilkan oleh nilai suatu benda yang sudah terkena nilai gravitasi dan gaya yang nantinya akan dijadikan suatu sinyal analog yang diteruskan kepada tranduser. Tranduser berfungsi sebagai alat yang mengubah nilai sinyal analog menjadi besaran listrik



Gambar 2.2 Foil Strain Gauge merenggang dan merapat

Pada gambar diatas, apabila adanya tekanan pada sensor loadcell terjadi perubahan pada saat mengalami tekanan akibat beban. Pada gambar 2.3 adalah penjelasan dari polaritas sensor loadcell yang dimana memiliki 4 kutub yaitu kutub positif, kutub negatif, tegangan kabel (Vout +) (Vout -). Kabel berwarna hitam merupakan tegangan V-, kabel berwarna merah merupakan tegangan luaran V+, kabel berwarna putih merupakan Vout- dan kabel berwarna merah merupakan tegangan luaran Vout+.

 Cara kerja dari sensor loadcell adalah dengan menggunakan jembatan wheatstone berikut adalah cara kerja dari jembatan wheatstone.



 

Gambar Rangkaian Jembatan Wheatstone

 

Jembatan wheatstone memiliki rangkaian yang telah dijelaskan pada gambar diatas dimana nilai dari R1=R3 dan nilai dari R2=R4, yang dimana arus akan mengalir dari sisi nilai R1 untuk mencari nilai pada Va yaitu tagangan pada R1 dan R3 menggunakan rumus


 

Sedangkan untuk mencari tegangan pada Vb yaitu tegangan pada R2 dan R4 menggunakan rumus



Untuk mencari nilai tegangan dari rangkaian jembatan wheatstone tersebut menggunakan 

                                           𝑉𝑜𝑢𝑡 = 𝑉𝑎 −𝑉𝑏                             



                   

        MOTOR SERVO

Motor servo adalah jenis motor DC dengan sistem umpan balik tertutup yang terdiri dari sebuah motor DC, serangkaian gear, rangkaian kontrol, dan juga potensiometer. Jadi motor servo sebenarnya tak berdiri sendiri, melainkan didukung oleh komponen-komponen lain yang berada dalam satu paket.


Berikut ini beberapa kelebihan dan kekurangan motor servo.

1.  Kelebihan Motor Servo

a.  Daya yang dihasilkan sebanding dengan berat atau ukuran motor.

b.  Penggunaan arus listrik sebanding dengan beban.

c.  Tidak bergetar saat digunakan.

d.  Tidak mengeluarkan suara berisik saat dalam kecepatan tinggi.

e.  Resolusi dan akurasi dapat diubah dengan mudah.

2.  Kekurangan Motor Servo

a.  Harga relatif lebih mahal dibanding motor DC lainnya.

b.  Bentuknya cukup besar karena satu paket.

Prinsip Kerja Motor Servo

Sebenarnya prinsip kerja dari motor servo tak jauh berbeda dibanding dengan motor DC yang lain. Hanya saja motor ini dapat bekerja searah maupun berlawanan jarum jam. Derajat putaran dari motor servo juga dapat dikontrol dengan mengatur pulsa yang masuk ke dalam motor tersebut.

Motor servo akan bekerja dengan baik bila pin kontrolnya diberikan sinyal PWM dengan frekuensi 50 Hz. Frekuensi tersebut dapat diperoleh ketika kondisi Ton duty cycle berada di angka 1,5 ms. Dalam posisi tersebut rotor dari motor berhenti tepat di tengah-tengah alias sudut nol derajat atau netral.

Pada saat kondisi Ton duty cycle kurang dari angka 1,5 ms, maka rotor akan berputar berlawanan arah jarum jam. Sebaliknya pada saat kondisi Ton duty cycle lebih dari angka 1,5 ms, maka rotor akan berputar searah jarum jam. Berikut ini adalah gambar atau skema pulsa kendali motor servo.



    Untuk dapat mengontrol motor servo kita perlu memberikan pulsa high dan pulsa low dengan lebar tertentu. Frekuensi yang diperlukan adalah 50 Hz. Pulsa ini dapat dihasilkan dengan port I/O biasa pada mikrokontroler. Namun terkadang dengan cara ini pergerakan servo menjadi kurang akurat. Oleh karena itu digunakan metode Pulse Width Modulation (PWM). Dengan metode PWM dapat dihasilkan gerakan servo yang cukup akurat dengan resolusi yang kita sesuaikan dengan keinginan kita

Berikut ini adalah salah satu contoh pulsa yang dihasilkan untuk menggerakan servo dengan sudut 0o,90o, dan 180o
 Pulsa ini dapat dihasilkan dari pin OCR pada mikrokontroler. Perlu pengaturan register timer pada mikrokontroler agar dapat dihasilkan pulsa dengan lebar yang sesuai kita inginkan. Hal yang sangat penting adalah pengaturan frekuensi dan lebar pulsa on dan pulsa off. Oleh karena itu perlu dihitung berapa konstanta-konstanta timer yang di atur pada mikrokontroler.

MOTOR DC 





 Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), ArmatureWinding (Kumparan Jangkar), Commutator (Komutator)dan Brushes (kuas/sikat arang).

    Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.


    Untuk menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan kutub magnet, arah arus pada kumparan dibalik. Dengan demikian, kutub utara kumparan akan berubah menjadi kutub selatan dan kutub selatannya akan berubah menjadi kutub utara. Pada saat perubahan kutub tersebut terjadi, kutub selatan kumparan akan berhadap dengan kutub selatan magnet dan kutub utara kumparan akan berhadapan dengan kutub utara magnet. Karena kutubnya sama, maka akan terjadi tolak menolak sehingga kumparan bergerak memutar hingga utara kumparan berhadapan dengan selatan magnet dan selatan kumparan berhadapan dengan utara magnet. Pada saat ini, arus yang mengalir ke kumparan dibalik lagi dan kumparan akan berputar lagi karena adanya perubahan kutub. Siklus ini akan berulang-ulang hingga arus listrik pada kumparan diputuskan.


LCD (LIQUID CRYSTAL DISPLAY)

LCD atau Liquid Crystal Display adalah suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk elektronik lainnya.


Teknologi Display LCD ini memungkinkan produk-produk elektronik dibuat menjadi jauh lebih tipis jika dibanding dengan teknologi Tabung Sinar Katoda (Cathode Ray Tube atau CRT). Jika dibandingkan dengan teknologi CRT, LCD juga jauh lebih hemat dalam mengkonsumsi daya karena LCD bekerja berdasarkan prinsip pemblokiran cahaya sedangkan CRT berdasarkan prinsip pemancaran cahaya. Namun LCD membutuhkan lampu backlight (cahaya latar belakang) sebagai cahaya pendukung karena LCD sendiri tidak memancarkan cahaya. Beberapa jenis backlight yang umum digunakan untuk LCD diantaranya adalah backlight CCFL (Cold cathode fluorescent lamps) dan backlight LED (Light-emitting diodes). Berikut merupakan tabel internal pin connection dari LED:


BATERAI

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).


Baterai dalam sistem PV mengalami berulang kali siklus pengisian dan pengosongan selama umur pakainya. Siklus hidup (cycle life) baterai adalah banyaknya pengisian dan pengosongan hingga kapasitas baterai turun (melemah) dan tersisa 80% dari kapasitas nominalnya. Pabrik baterai biasanya mencantumkan siklus hidup pada spesifikasi teknis baterai. Mencantumkan satu nilai siklus hidup (cycle life) sebenarnya terlalu menyederhanakan informasi, karena siklus hidup baterai juga tergantung pada suhu baterai.

Dari grafik di atas, terlihat pada suhu operasional baterai yang lebih rendah, siklus hidup baterai lebih lama. Siklus hidup baterai juga tergantung dari DoD, artinya baterai yang dikosongkan hanya 50% dari kapasitasnya, berumur lebih lama jika dikosongkan hingga 80%, namun membuat sistem menjadi lebih mahal, karena membutuhkan kapasitas baterai lebih besar untuk mengakomodasi kebutuhan yang sama.

 


    IC HX711


IC HX711 adalah modul timbangan, yang memiliki prinsip kerja mengkonversi perubahan yang terukur dalam perubahan resistansi dan mengkonversinya ke dalam besaran tegangan melalui rangkaian yang ada. Modul melakukan komunikasi dengan computer/mikrokontroller melalui TTL232. 

Spesifikasi Teknis modul HX711 Weight Scale ADC Module:

*      Dua kanal ADC (dapat digunakan untuk 2 load cell) dengan keluaran TTL (serial tersinkronisasi, DI dan SCK).

*      Tegangan opersional 5 Volt DC

*      Tegangan masukan diferensial ±40 mV pada skala penuh

*      Akurasi data 24 bit (24-bit ADC)

*      Frekuensi pembacaan (refresh rate) 80 Hz

*      Konsumsi arus kurang dari 10 mA

*      Ukuran: 38 x 21 mm dengan berat 20 gram

 

Prinsip Kerja IC HX711


                                 

Prinsip kerja sensor regangan ketika mendapat tekanan beban. (sumber datasheet HX711) Ketika bagian lain yang lebih elastic mendapat tekanan, maka pada sisi lain akan mengalami perubahan regangan yang sesuai dengan yang dihasilkan oleh straingauge, 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 pengukuran yang ada. 

 

Dan berat dari objek yang diukur dapat diketahui dengan mengukur besarnya nilai tegangan yang timbul.

Prinsip operasi rangkaian strain gauge. (sumber datasheet HX711) 


 

 IC Driver L298N  

Modul Driver Motor L298N ini adalah sebuah sebuah H-Bridge Dual Motor Controller 2A yang memungkinkan kita untuk mengatur arah putaran maupun kecepatan dari satu atau dua motor DC. Selain itu, dengan modul driver motor ini kita juga dapat mengontrol sebuah motor DC bipolar dengan mudah.

Modul driver motor ini dapat digunakan untuk motor dengan rentang tegangan DC antara 5 Volt - 35 Volt. Pada modul ini terdapat regulator 5V sehingga jika membutuhkan sumber tegangan 5V kita bisa mendapatkannya dari board ini. 

Berikut ini adalah spesifikasi dari Modul Driver Motor L298N:

·       Double H-Bridge drive chip: L298N

·       Logical voltage: 5V

·       Logical current: 0-36 mA

·       Drive voltage: 5V sampai dengan 35V

·       Drive current: 2A untuk setiap motor DC

·       Ukuran: 43x43x27 mm

·       Berat: 30 gram

Berikut ini adalah bentuk fisik dari Modul Driver Motor L298N :

 



 
  


IC PCF8574

Ekspander input/output (I/O) 8-bit untuk bus dua arah dua arah (I2C) ini dirancang untuk operasi Vcc 2,5-V hingga 6-V.


Perangkat PCF8574 menyediakan ekspansi I/O jarak jauh untuk keperluan umum untuk sebagian besar keluarga mikrokontroler melalui antarmuka I2C [serial clock (SCL), serial data (SDA)].

Perangkat ini dilengkapi port I/O kuasi-dua arah 8-bit (P0-P7), termasuk output terkunci dengan kemampuan penggerak arus tinggi untuk menggerakkan LED secara langsung. Setiap I/O kuasi-dua arah dapat digunakan sebagai input atau output tanpa menggunakan sinyal kontrol arah data. Saat dihidupkan, I/O tinggi. Dalam mode ini, hanya sumber arus ke Vcc yang aktif.

Perangkat PCF8574 adalah ekspander I/O 8-bit untuk bus dua arah dua arah (I2C) yang dirancang untuk operasi Vcc 2,5-V hingga 5,5-V. Ini menyediakan ekspansi I/O jarak jauh untuk tujuan umum untuk sebagian besar keluarga pengontrol mikro melalui antarmuka I2C (jam serial, SCL, dan data serial, SDA, pin).

Perangkat PCF8574 menyediakan output saluran terbuka (INT) yang dapat dihubungkan ke input interupsi mikrokontroler. Interupsi dihasilkan oleh naik atau turunnya tepi input port dalam mode input. Setelah beberapa waktu, tiv, INT valid. Menyetel ulang dan mengaktifkan kembali rangkaian interupsi dicapai ketika data pada port diubah ke pengaturan asli atau data dibaca dari, atau ditulis ke, port yang menghasilkan interupsi. Penyetelan ulang terjadi dalam mode baca pada bit pengakuan setelah tepi naik sinyal SCL, atau dalam mode tulis pada bit pengakuan setelah transisi sinyal SCL tinggi ke rendah. Interupsi yang terjadi selama pulsa clock pengakuan dapat hilang (atau menjadi sangat pendek) karena pengaturan ulang interupsi selama pulsa ini. Setiap perubahan I/O setelah reset dideteksi dan, setelah kenaikan clock berikutnya, ditransmisikan sebagai INT. Membaca dari, atau menulis ke, perangkat lain tidak mempengaruhi rangkaian interupsi. Perangkat ini tidak memiliki konfigurasi internal atau register status. Sebaliknya, baca atau tulis ke I/O perangkat secara langsung setelah mengirimkan alamat perangkat (lihat Gambar 16 dan Gambar 17).

Dengan mengirimkan sinyal interupsi pada saluran ini, I/O jarak jauh dapat menginformasikan mikrokontroler jika ada data masuk pada portnya tanpa harus berkomunikasi melalui bus I²C. Oleh karena itu, PCF8574 dapat tetap menjadi perangkat budak yang sederhana.

Pullup tambahan yang kuat ke Vcc memungkinkan peningkatan tepi yang cepat menjadi output yang banyak muatannya. Perangkat ini menyala ketika output ditulis tinggi dan dimatikan oleh tepi negatif SCL. I/O harus tinggi sebelum digunakan sebagai input.



5. Percobaan  [Kembali]

 
     a.) Prosedur 
 [Kembali]

    1. Siapkan semua alat dan bahan yang diperlukan
    2. Disarankan agar membaca datasheet setiap komponen
    3. Cari kompnen yang diperlukan di library proteus
    4. Pasang dan simulasikan rangkaian tersebut

 Pada rangkaian PENGHITUNG BARANG OTOMATIS CONVEYOR system ini, untuk komunikasi arduino Master dan Slave menggunakan komunikasi UART menggunakan pin Rx dan Tx untuk transfer data, dimana pin Tx Master dihubungkan dengan Rx Slave dan Rx Master dihubungkan dengan Tx Slave. Kemudian pin sensor sebagai inputan dihubungkan dengan pin pada arduiono master dan output dihubungkan pada pin arduino slave seperti yang di deklarasikan pada program.

Pada Arduino Master masing-masing sensor sebagai inputan, outputnya dihubungkan pada pin yang ada pada arduino yaitu, untuk sensor load cell dihubungkan ke pin D8 untuk sck dan pin D9 untuk pin dout, pin D12 sensor infrarred, ldr sensor terhubung ke A3, Pin D6 dan D7 terhubung kesensor ultrasonik pin echo dan triger pin D1 dan D0 terhubung keuart pin A1 dan A0 kearduino slave

Pada Arduino Slave masing-masing pin dihubungkan dengan outputan sistem conveyor otomatis dan indicator lain seperti LED, motor DC, Motor Servo dan LCD dengan I2C. Masing-masing output pada pin digital arduino slave yaitu, LED hijau pada pin D6, motor dc (penggerak conveyor) , dan motor servo pada pin D5 dan pin D3 . Selanjut LCD dengan I2C dihubungkan dengan pin SCL dan SDA pada masing-masing pin arduino slave ( A4 Dan A5)

Setelah itu dilakukan perakitan dan penguploadan program pada mikrokontroller sesuai dengan kondisi yang sudah ditentukan sebelumnya untuk project Penghitung Otomatis Conveyor System ini.


     b.) Hardware [Kembali]

  • Raspberry Pi Pico

    • Mikrokontroler berbasis RP2040

    • 26 GPIO, komunikasi UART, I2C, dan SPI

    • Tegangan kerja 3.3V

  • STM32F103C8T6 (Blue Pill)

    • Mikrokontroler berbasis ARM Cortex-M3

    • 37 GPIO, komunikasi UART, I2C, SPI, PWM

    • Tegangan kerja 3.3V

  • Load Cell + Modul HX711

    • Load cell kapasitas 1–5 kg

    • Modul HX711 sebagai ADC 24-bit untuk pembacaan berat load cell

    • Tegangan kerja 5V

  • Sensor Warna TCS3200

    • Sensor RGB berbasis photodiode array

    • Output berupa frekuensi sesuai intensitas warna

    • Tegangan kerja 5V

  • Sensor Infrared (IR)

    • Sensor photodiode + IR LED untuk deteksi benda

    • Output digital HIGH/LOW

    • Tegangan kerja 5V

  • Motor Servo SG90 / MG90S

    • Motor servo mini untuk aktuasi mekanik sortir buah

    • Tegangan kerja 4.8V–6V

    • Torsi SG90: ±1.8 kg.cm @ 5V

    • Torsi MG90S: ±2.2 kg.cm @ 6V

  • LCD 16x2 I2C

    • Layar LCD 16 karakter × 2 baris

    • Komunikasi I2C (SDA, SCL)

    • Tegangan kerja 5V

  • Power Supply Eksternal 5V

    • Adaptor DC 5V 2A / 3A atau

    • 4x baterai AA rechargeable atau

    • Power bank + step down converter

  • Kabel Jumper

    • Kabel koneksi antar komponen di breadboard dan mikrokontroler

  • Breadboard

    • Media perakitan komponen sementara tanpa soldering

  • Resistor (opsional)

    • Untuk pull-up/pull-down atau pengamanan sinyal jika diperlukan

  • Casing Baterai (opsional)

    • Untuk supply baterai AA jika tidak menggunakan adaptor



  •      c.) Rangkaian Simulasi dan Prinsip Kerja  [Kembali]
    • Rangkaian Simulasi :

    • Prinsip Kerja:

    Pada proyek sistem sortasi buah ini, digunakan beberapa jenis sensor dan aktuator yang terintegrasi dengan dua mikrokontroler, yaitu Raspberry Pi Pico dan STM32F103C8T6. Sistem ini terdiri dari sensor Load Cell untuk mengukur berat buah, sensor warna TCS3200 untuk mendeteksi warna buah, sensor inframerah (IR) untuk mendeteksi kehadiran buah di jalur sortir akhir, motor servo untuk mengatur arah jalur sortir buah, dan LCD 16x2 untuk menampilkan jumlah buah yang telah diproses.

    Sensor Load Cell membaca berat buah yang diletakkan di atasnya melalui modul HX711 yang terhubung ke Raspberry Pi Pico. Jika berat buah yang terdeteksi melebihi 200 gram, maka Raspberry Pi Pico akan mengaktifkan motor servo pertama untuk mendorong buah menuju jalur sortir. Selanjutnya, saat buah bergerak di jalur sortir, sensor warna TCS3200 yang dipasang di sepanjang lintasan akan membaca warna buah dengan mengukur nilai intensitas RGB. Jika warna buah terdeteksi kuning sesuai batasan nilai RGB yang telah ditentukan, Raspberry Pi Pico akan mengirimkan sinyal berupa string "servo2" melalui komunikasi UART ke STM32F103C8T6.

    STM32F103C8T6 bertugas menerima data hasil deteksi dari Raspberry Pi Pico dan melakukan proses sortir akhir. Jika data yang diterima adalah "servo2", maka motor servo kedua yang terpasang di ujung jalur akan bergerak untuk mengarahkan buah ke jalur khusus buah berwarna kuning. Sementara itu, buah dengan warna selain kuning akan tetap diarahkan ke jalur utama tanpa pergerakan servo. Setelah itu, saat buah melewati titik sortir akhir, sensor inframerah (IR) yang terpasang di jalur tersebut akan mendeteksi kehadiran buah dan mengirimkan sinyal ke STM32. Setiap kali IR mendeteksi buah lewat, nilai penghitung (counter) jumlah buah yang telah disortir akan bertambah dan ditampilkan secara real-time pada LCD 16x2.

    Agar sistem dapat bekerja stabil, kedua motor servo disuplai menggunakan power supply eksternal 5V, sementara seluruh sistem terhubung ke common ground untuk menjaga kestabilan sinyal. Komunikasi antar mikrokontroler dilakukan melalui jalur UART dengan baudrate yang disamakan, sehingga data hasil deteksi berat dan warna dapat ditransfer secara sinkron dan proses sortir berjalan otomatis sesuai hasil pengukuran.


         d.) Flowchart dan Listing Program  [Kembali]
    •     Flowchart:




    •     Listing Program:
    - MASTER

    from machine import Pin, UART, PWM

    from hx711 import HX711

    import time

     

    # UART pakai TX=GP8, RX=GP9

    uart = UART(1, baudrate=9600, tx=Pin(8), rx=Pin(9))

     

    # HX711 setup (Load Cell) pakai GP0 dan GP1

    hx = HX711(0, 1)  # DT = GP0, SCK = GP1

    hx.set_scale(1)

     

    # Servo untuk load cell di GP7

    servo_loadcell = PWM(Pin(7))

    servo_loadcell.freq(50)

     

    # TCS3200 pin setup

    S0 = Pin(2, Pin.OUT)

    S1 = Pin(3, Pin.OUT)

    S2 = Pin(4, Pin.OUT)

    S3 = Pin(5, Pin.OUT)

    warna_pin = Pin(6, Pin.IN)

     

    S0.value(1)

    S1.value(0)

     

    def set_servo_angle(pwm, angle):

        duty = int(1638 + (angle / 180) * 819)  # 0° = 0.5ms, 180° = 2.5ms

        pwm.duty_u16(duty)

     

    def read_pulse(timeout_ms=100):

        start_time = time.ticks_ms()

        while warna_pin.value() == 0:

            if time.ticks_diff(time.ticks_ms(), start_time) > timeout_ms:

                return 0

        start = time.ticks_us()

        while warna_pin.value() == 1:

            if time.ticks_diff(time.ticks_ms(), start_time) > timeout_ms:

                return 0

        duration = time.ticks_diff(time.ticks_us(), start)

        return 1000000 / duration if duration else 0

     

    def baca_rgb():

        S2.value(0); S3.value(0)

        time.sleep(0.1)

        r = read_pulse()

     

        S2.value(1); S3.value(1)

        time.sleep(0.1)

        g = read_pulse()

     

        S2.value(0); S3.value(1)

        time.sleep(0.1)

        b = read_pulse()

     

        return int(r), int(g), int(b)

     

    # Fungsi deteksi warna kuning

    def deteksi_kuning(r, g, b):

        return (

            r > 3000 and        # merah cukup tinggi

            3000 < g < 8000 and # hijau sedang

            b < 4000            # biru relatif rendah

        )

     

    # Kalibrasi load cell saja

    def kalibrasi_loadcell():

        print("Kalibrasi Load Cell (tanpa beban)")

        input("Tekan ENTER jika loadcell kosong...")

        hx.tare()

        print("Offset berhasil:", hx.offset)

     

        input("Letakkan beban 200 gram lalu tekan ENTER...")

        bacaan = hx.read()

        faktor = (bacaan - hx.offset) / 200.0

        print("Faktor kalibrasi:", faktor)

        hx.set_scale(faktor)

        return faktor

     

    # Kalibrasi awal

    hx.set_scale(1)

    kalibrasi_loadcell()

     

    AMBANG_BERAT = 200

    warna_sudah_dikirim = False

     

    while True:

        try:

            berat = hx.get_units(5)

            print("Berat: {:.2f} gram".format(berat))

            if berat > AMBANG_BERAT:

                print("Gerakkan servo loadcell (di Pico)")

                set_servo_angle(servo_loadcell, 90)

                time.sleep(1)

                set_servo_angle(servo_loadcell, 0)

        except Exception as e:

            print("HX711 error:", e)

     

        r, g, b = baca_rgb()

        print("RGB sekarang:", r, g, b)

     

        if deteksi_kuning(r, g, b):

            if not warna_sudah_dikirim:

                uart.write("servo2\n")

                print("Kirim: servo2 (warna kuning ke STM32)")

                warna_sudah_dikirim = True

        else:

            warna_sudah_dikirim = False

     

        time.sleep(0.5)

     

    - SLAVE

    from machine import Pin, UART, PWM

    from hx711 import HX711

    import time

     

    # UART pakai TX=GP8, RX=GP9

    uart = UART(1, baudrate=9600, tx=Pin(8), rx=Pin(9))

     

    # HX711 setup (Load Cell) pakai GP0 dan GP1

    hx = HX711(0, 1)  # DT = GP0, SCK = GP1

    hx.set_scale(1)

     

    # Servo untuk load cell di GP7

    servo_loadcell = PWM(Pin(7))

    servo_loadcell.freq(50)

     

    # TCS3200 pin setup

    S0 = Pin(2, Pin.OUT)

    S1 = Pin(3, Pin.OUT)

    S2 = Pin(4, Pin.OUT)

    S3 = Pin(5, Pin.OUT)

    warna_pin = Pin(6, Pin.IN)

     

    S0.value(1)

    S1.value(0)

     

    def set_servo_angle(pwm, angle):

        duty = int(1638 + (angle / 180) * 819)  # 0° = 0.5ms, 180° = 2.5ms

        pwm.duty_u16(duty)

     

    def read_pulse(timeout_ms=100):

        start_time = time.ticks_ms()

        while warna_pin.value() == 0:

            if time.ticks_diff(time.ticks_ms(), start_time) > timeout_ms:

                return 0

        start = time.ticks_us()

        while warna_pin.value() == 1:

            if time.ticks_diff(time.ticks_ms(), start_time) > timeout_ms:

                return 0

        duration = time.ticks_diff(time.ticks_us(), start)

        return 1000000 / duration if duration else 0

     

    def baca_rgb():

        S2.value(0); S3.value(0)

        time.sleep(0.1)

        r = read_pulse()

     

        S2.value(1); S3.value(1)

        time.sleep(0.1)

        g = read_pulse()

     

        S2.value(0); S3.value(1)

        time.sleep(0.1)

        b = read_pulse()

     

        return int(r), int(g), int(b)

     

    # Fungsi deteksi warna kuning

    def deteksi_kuning(r, g, b):

        return (

            r > 3000 and        # merah cukup tinggi

            3000 < g < 8000 and # hijau sedang

            b < 4000            # biru relatif rendah

        )

     

    # Kalibrasi load cell saja

    def kalibrasi_loadcell():

        print("Kalibrasi Load Cell (tanpa beban)")

        input("Tekan ENTER jika loadcell kosong...")

        hx.tare()

        print("Offset berhasil:", hx.offset)

     

        input("Letakkan beban 200 gram lalu tekan ENTER...")

        bacaan = hx.read()

        faktor = (bacaan - hx.offset) / 200.0

        print("Faktor kalibrasi:", faktor)

        hx.set_scale(faktor)

        return faktor

     

    # Kalibrasi awal

    hx.set_scale(1)

    kalibrasi_loadcell()

     

    AMBANG_BERAT = 200

    warna_sudah_dikirim = False

     

    while True:

        try:

            berat = hx.get_units(5)

            print("Berat: {:.2f} gram".format(berat))

            if berat > AMBANG_BERAT:

                print("Gerakkan servo loadcell (di Pico)")

                set_servo_angle(servo_loadcell, 90)

                time.sleep(1)

                set_servo_angle(servo_loadcell, 0)

        except Exception as e:

            print("HX711 error:", e)

     

        r, g, b = baca_rgb()

        print("RGB sekarang:", r, g, b)

     

        if deteksi_kuning(r, g, b):

            if not warna_sudah_dikirim:

                uart.write("servo2\n")

                print("Kirim: servo2 (warna kuning ke STM32)")

                warna_sudah_dikirim = True

        else:

            warna_sudah_dikirim = False

     

        time.sleep(0.5)

     

         e.) Vidio demo  [Kembali]

    -VIDIO PENJELASAN








       
         f.) Download File  [back]
    1. Download File Rangkaian Di Sini
    2. Download Video Percobaan:
        - Vidio Penjelasan  Di Sini
    3. Download Kode Program :
        - Program Master Di Sini
        - Program Slave Di Sini
    4. Download Flowchart Di Sini
    5. Download Datasheet Infared Sensor Di Sini
    6. Download Datasheet LDR Sensor  Di Sini
    7. Download Datasheet Load Cell Sensor Di Sini
    8. Download Datasheet Ultrasonic Sensor Di Sini
    9. Download Datasheet RFID Sensor Di Sini
    10. Download Datasheet IC PCF8574  Di Sini
    11. Download Datasheet Arduino UNO Di Sini
    12. Download Datasheet LCD LM016L Di Sini
    13. Download Library Infrared Sensor Di Sini
    14. Download Library Ultrasonic Sensor Di Sini
    15. Download DataSheet HX711 Di Sini
    16. Download Library Arduino UNO Di Sini
    17. Download Datasheet Komponen :
        - Datasheet Baterai Di Sini
        - Datasheet Relay Di Sini
        - Datasheet Resistor Di Sini
        - Datasheet Motor Di Sini
        - Datasheet Servo Di Sini
    18. Download Softcopy Laporan Di Sini
    19. Download File HTML Di Sini
    20. Download Datasheet Jumper Di Sini
    21. Download Datasheet Resistor Di sini

    Komentar

    Postingan populer dari blog ini