Modul 4



1. Tujuan [Kembali]

  • Dapat mengimplementasikan dan menguji sistem sortasi otomatis berdasarkan warna dan berat jeruk.

  • Memahami cara kerja sensor PIR, Load Cell, dan sensor warna dalam proses sortasi otomatis.

  • Dapat merancang dan membuat rangkaian untuk sistem sortasi dengan pengontrol STM32 dan Raspberry Pi Pico.

  • Dapat menampilkan data jumlah jeruk secara real-time pada LCD dengan akurasi yang tinggi.




   

- 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

   





     

  •  Sensor Load Cell

Gambar 1. Sensor Load Cell

   
    Sebuah sensor load cell adalah perangkat elektronik yang dirancang khusus untuk mengukur gaya atau beban secara akurat. Sensor ini bekerja berdasarkan prinsip perubahan resistansi listrik pada elemen strain gauge yang terdapat di dalamnya ketika diberikan beban. Ketika beban diterapkan pada sensor load cell, elemen strain gauge mengalami regangan yang mengubah nilai resistansinya. Perubahan ini kemudian dikonversi menjadi sinyal listrik yang proporsional dengan besar gaya atau beban yang diterapkan. Sensor load cell digunakan dalam berbagai aplikasi, mulai dari industri manufaktur untuk mengukur berat benda hingga dalam sistem kontrol proses yang membutuhkan monitoring beban secara real-time. Keunggulan utama sensor load cell adalah kemampuannya dalam memberikan hasil pengukuran yang sangat akurat dan stabil, sehingga sangat berguna dalam situasi di mana presisi pengukuran sangat penting.


  • Modul HX711
Gambar 2. Modul HX711

    Modul HX711 adalah sebuah modul penguat (amplifier) yang dirancang khusus untuk mengolah sinyal dari sensor berat atau load cell. Modul ini memiliki kemampuan untuk meningkatkan sinyal analog yang sangat lemah dari load cell menjadi sinyal digital yang dapat diproses oleh mikrokontroler, seperti Arduino. Modul HX711 bekerja dengan menggunakan teknik penguat diferensial untuk mendapatkan hasil yang akurat dari sensor berat. Pada dasarnya, HX711 terdiri dari dua saluran input analog (A dan B), di mana saluran A memiliki dua pengaturan penguatan yang berbeda (128 dan 64), sementara saluran B memiliki penguatan tetap sebesar 32. Modul ini juga dilengkapi dengan konverter analog ke digital (ADC) dengan resolusi 24-bit yang memungkinkan pengukuran sangat presisi. HX711 biasanya digunakan dalam aplikasi yang memerlukan pengukuran berat yang akurat, seperti timbangan digital, karena modul ini dapat mengeliminasi gangguan dan menghasilkan data yang stabil dan akurat. Dengan demikian, modul HX711 adalah pilihan yang populer untuk aplikasi penimbangan dan pengukuran berat yang memerlukan tingkat presisi tinggi.
Gambar 3. Pin Out Modul HX711Z

  • Motor Servo

Gambar 4. Motor Servo

Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.

Prinsip kerja motor servo:

Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih jelasnya perhatikan gambar dibawah ini.


  • LCD (16X2 I2C)

Gambar 3.3 LCD


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

            LCD atau Liquid Crystal Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair (Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif.


Bagian-bagian LCD atau Liquid Crystal Display diantaranya adalah:

  • Lapisan Terpolarisasi 1 (Polarizing Film 1)

  • Elektroda Positif (Positive Electrode)

  • Lapisan Kristal Cair (Liquid Cristal Layer)

  • Elektroda Negatif (Negative Electrode)

  • Lapisan Terpolarisasi 2 (Polarizing film 2)

  • Backlight atau Cermin (Backlight or Mirror)

Dibawah ini adalah struktur dasar sebuah LCD:


LCD yang digunakan pada Kalkulator dan Jam Tangan digital pada umumnya menggunakan Cermin untuk memantulkan cahaya alami agar dapat menghasilkan digit yang terlihat di layar. Sedangkan LCD yang lebih modern dan berkekuatan tinggi seperti TV, Laptop dan Ponsel Pintar menggunakan lampu Backlight (Lampu Latar Belakang) untuk menerangi piksel kristal cair. Lampu Backlight tersebut pada umumnya berbentuk persegi panjang atau strip lampu Flourescent atau Light Emitting Diode (LED). Cahaya putih adalah cahaya terdiri dari ratusan cahaya warna yang berbeda. Ratusan warna cahaya tersebut akan terlihat apabila cahaya putih mengalami refleksi atau perubahan arah sinar. Artinya, jika beda sudut refleksi maka berbeda pula warna cahaya yang dihasilkan.

Backlight LCD yang berwarna putih akan memberikan pencahayaan pada Kristal Cair atau Liquid Crystal. Kristal cair tersebut akan menyaring backlight yang diterimanya dan merefleksikannya sesuai dengan sudut yang diinginkan sehingga menghasilkan warna yang dibutuhkan. Sudut Kristal Cair akan berubah apabila diberikan tegangan dengan nilai tertentu. Karena dengan perubahan sudut dan penyaringan cahaya backlight pada kristal cair tersebut, cahaya backlight yang sebelumnya adalah berwarna putih dapat berubah menjadi berbagai warna.

Jika ingin menghasilkan warna putih, maka kristal cair akan dibuka selebar-lebarnya sehingga cahaya backlight yang berwarna putih dapat ditampilkan sepenuhnya. Sebaliknya, apabila ingin menampilkan warna hitam, maka kristal cair harus ditutup serapat-rapatnya sehingga tidak adalah cahaya backlight yang dapat menembus. Dan apabila menginginkan warna lainnya, maka diperlukan pengaturan sudut refleksi kristal cair yang bersangkutan.

Register LCD

LCD 16x2 memiliki dua register seperti register data dan register perintah. RS (register select) atau pilihan daftar terutama digunakan untuk mengubah dari satu register ke register lainnya. Ketika set register adalah '0', maka itu dikenal sebagai register perintah. Demikian pula, ketika set register adalah '1', maka itu dikenal sebagai register data.

Command Register

Fungsi utama dari register perintah adalah untuk menyimpan instruksi perintah yang diberikan ke layar. Di sini pemrosesan perintah dapat terjadi dalam register.

Data Register

Fungsi utama daftar data adalah untuk menyimpan informasi yang akan ditampilkan di layar LCD. Di sini, nilai karakter ASCII adalah informasi yang akan ditampilkan di layar LCD. Setiap kali kita mengirim informasi ke LCD, ia mengirimkan ke daftar data, dan kemudian proses akan mulai di sana. Saat daftar diatur = 1, maka daftar data akan dipilih.


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

            LCD atau Liquid Crystal Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair (Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif.


Bagian-bagian LCD atau Liquid Crystal Display diantaranya adalah:

  • Lapisan Terpolarisasi 1 (Polarizing Film 1)

  • Elektroda Positif (Positive Electrode)

  • Lapisan Kristal Cair (Liquid Cristal Layer)

  • Elektroda Negatif (Negative Electrode)

  • Lapisan Terpolarisasi 2 (Polarizing film 2)

  • Backlight atau Cermin (Backlight or Mirror)

Dibawah ini adalah struktur dasar sebuah LCD:


LCD yang digunakan pada Kalkulator dan Jam Tangan digital pada umumnya menggunakan Cermin untuk memantulkan cahaya alami agar dapat menghasilkan digit yang terlihat di layar. Sedangkan LCD yang lebih modern dan berkekuatan tinggi seperti TV, Laptop dan Ponsel Pintar menggunakan lampu Backlight (Lampu Latar Belakang) untuk menerangi piksel kristal cair. Lampu Backlight tersebut pada umumnya berbentuk persegi panjang atau strip lampu Flourescent atau Light Emitting Diode (LED). Cahaya putih adalah cahaya terdiri dari ratusan cahaya warna yang berbeda. Ratusan warna cahaya tersebut akan terlihat apabila cahaya putih mengalami refleksi atau perubahan arah sinar. Artinya, jika beda sudut refleksi maka berbeda pula warna cahaya yang dihasilkan.

Backlight LCD yang berwarna putih akan memberikan pencahayaan pada Kristal Cair atau Liquid Crystal. Kristal cair tersebut akan menyaring backlight yang diterimanya dan merefleksikannya sesuai dengan sudut yang diinginkan sehingga menghasilkan warna yang dibutuhkan. Sudut Kristal Cair akan berubah apabila diberikan tegangan dengan nilai tertentu. Karena dengan perubahan sudut dan penyaringan cahaya backlight pada kristal cair tersebut, cahaya backlight yang sebelumnya adalah berwarna putih dapat berubah menjadi berbagai warna.

Jika ingin menghasilkan warna putih, maka kristal cair akan dibuka selebar-lebarnya sehingga cahaya backlight yang berwarna putih dapat ditampilkan sepenuhnya. Sebaliknya, apabila ingin menampilkan warna hitam, maka kristal cair harus ditutup serapat-rapatnya sehingga tidak adalah cahaya backlight yang dapat menembus. Dan apabila menginginkan warna lainnya, maka diperlukan pengaturan sudut refleksi kristal cair yang bersangkutan.

Register LCD

LCD 16x2 memiliki dua register seperti register data dan register perintah. RS (register select) atau pilihan daftar terutama digunakan untuk mengubah dari satu register ke register lainnya. Ketika set register adalah '0', maka itu dikenal sebagai register perintah. Demikian pula, ketika set register adalah '1', maka itu dikenal sebagai register data.

Command Register

Fungsi utama dari register perintah adalah untuk menyimpan instruksi perintah yang diberikan ke layar. Di sini pemrosesan perintah dapat terjadi dalam register.

Data Register

Fungsi utama daftar data adalah untuk menyimpan informasi yang akan ditampilkan di layar LCD. Di sini, nilai karakter ASCII adalah informasi yang akan ditampilkan di layar LCD. Setiap kali kita mengirim informasi ke LCD, ia mengirimkan ke daftar data, dan kemudian proses akan mulai di sana. Saat daftar diatur = 1, maka daftar data akan dipilih.



  • Teori STM32F103C8





STM32F103C8 adalah salah satu mikrokontroler berbasis ARM Cortex-M3 yang diproduksi oleh STMicroelectronics. Mikrokontroler ini banyak digunakan dalam aplikasi embedded system karena memiliki performa yang baik, konsumsi daya rendah, serta fitur yang cukup lengkap. Berikut adalah beberapa fitur utama STM32F103C8:

  1. Arsitektur ARM Cortex-M3

    • Menggunakan prosesor ARM 32-bit dengan performa tinggi.

    • Mendukung operasi matematika dan kontrol dengan efisiensi tinggi.

  2. Fitur Memori

    • Flash memory sebesar 64 KB atau 128 KB untuk menyimpan program.

    • RAM sebesar 20 KB.

  3. GPIO (General Purpose Input Output)

    • Memiliki hingga 37 pin GPIO yang dapat dikonfigurasi untuk berbagai keperluan, seperti PWM, ADC, dan komunikasi serial.

  4. Fitur ADC dan PWM

    • ADC (Analog-to-Digital Converter) 12-bit dengan 16 saluran.

    • Kemampuan menghasilkan PWM untuk kontrol motor dan aplikasi lainnya.

  5. Komunikasi

    • Mendukung protokol UART, SPI, I2C, dan USB untuk komunikasi dengan perangkat lain.

  6. Keunggulan STM32F103C8

    • Dukungan library HAL (Hardware Abstraction Layer) dan CMSIS (Cortex Microcontroller Software Interface Standard).

    • Cocok untuk aplikasi industri, sistem kontrol, dan otomasi.

  • Raspberry Pi Pico




Raspberry Pi Pico adalah papan mikrokontroler berbasis chip RP2040 yang dirancang oleh Raspberry Pi Foundation. Papan ini populer di kalangan pengembang karena fleksibilitas, harga yang terjangkau, dan dukungan ekosistem software yang luas.

  1. Chip RP2040

    • Prosesor dual-core ARM Cortex-M0+ yang bekerja hingga 133 MHz.

    • Dirancang untuk efisiensi daya dan performa optimal.

  2. Fitur Memori

    • RAM sebesar 264 KB.

    • Memiliki flash memory eksternal sebesar 2 MB untuk menyimpan program.

  3. GPIO

    • Dilengkapi dengan 26 pin GPIO yang mendukung PWM, ADC, dan fungsi I/O lainnya.

  4. Komunikasi

    • Mendukung protokol UART, SPI, dan I2C.

    • Dapat terhubung dengan berbagai perangkat eksternal, seperti sensor, motor, dan modul komunikasi.

  5. Fitur Khusus PIO (Programmable I/O)

    • Memungkinkan konfigurasi I/O secara fleksibel untuk aplikasi khusus.

    • Mendukung pengendalian perangkat keras dengan kebutuhan timing yang ketat.

  6. Keunggulan Raspberry Pi Pico

    • Kompatibilitas dengan MicroPython dan C/C++.

    • Cocok untuk aplikasi IoT, edukasi, dan sistem otomatisasi sederhana.



4. Langkah Langkah Percobaan dan Prinsip Kerja [Kembali]



Prinsip Kerja

Langkah-Langkah Percobaan dan Prinsip Kerja

a. Sensor Infrared (IR Sensor untuk Deteksi Jeruk Awal)

  1. Alat dan Bahan:

    • Sensor IR

    • Raspberry Pi Pico

    • Resistor

    • Ground

    • Power Supply

  2. Langkah-Langkah:

    • Sambungkan sensor IR ke Raspberry Pi Pico:

      • VCC → 3.3V

      • OUT → GPIO pin (misal, GP7)

      • GND → GND

    • Programkan Raspberry Pi Pico untuk membaca sinyal dari sensor IR.

    • Uji sensor dengan menempatkan jeruk di depan sensor untuk memastikan mendeteksi objek.

    • Jika objek terdeteksi, kirim sinyal ke STM32 untuk mengaktifkan Load Cell.

Prinsip Kerja:

Sensor IR mendeteksi keberadaan jeruk melalui pantulan sinar inframerah. Ketika jeruk terdeteksi, sensor mengirimkan sinyal ke Raspberry Pi Pico untuk melanjutkan proses ke pengukuran berat.

b. Load Cell dengan HX711 (Pengukuran Berat Jeruk)

  1. Alat dan Bahan:

    • Load Cell

    • Modul HX711

    • STM32

    • Servo (Servo 1)

  2. Langkah-Langkah:

    • Sambungkan Load Cell ke modul HX711:

      • E+ dan E- untuk eksitasi.

      • A+ dan A- untuk sinyal.

    • Sambungkan HX711 ke STM32:

      • DT → GPIO (misal, A0).

      • SCK → GPIO (misal, A1).

      • VCC → 3.3V.

      • GND → GND.

    • Programkan STM32 untuk membaca berat dari Load Cell.

    • Hubungkan servo (Servo 1) ke STM32 (misal, A2).

    • Uji sistem dengan menimbang jeruk dan pastikan servo bergerak untuk memilah berdasarkan berat.

Prinsip Kerja:

Load Cell mengukur berat jeruk dan mengirimkan data ke STM32 melalui HX711. STM32 memproses data berat dan menggerakkan Servo 1 untuk memilah jeruk sesuai dengan kriteria berat.

c. Sensor Warna (TCS3200 untuk Deteksi Warna)

  1. Alat dan Bahan:

    • Sensor TCS3200

    • STM32

    • Servo (Servo 2)

  2. Langkah-Langkah:

    • Sambungkan TCS3200 ke STM32:

      • S0, S1, S2, S3 → GPIO (misal, A3-A6).

      • OUT → GPIO (misal, A7).

      • VCC → 3.3V.

      • GND → GND.

    • Programkan STM32 untuk membaca nilai RGB dari TCS3200.

    • Hubungkan servo (Servo 2) ke STM32 (misal, A8).

    • Uji sistem dengan mendeteksi warna jeruk dan pastikan servo bergerak untuk memilah berdasarkan warna.

Prinsip Kerja:

Sensor TCS3200 mendeteksi warna jeruk dengan membaca nilai RGB. Data warna diproses oleh STM32, yang kemudian menggerakkan Servo 2 untuk memilah jeruk sesuai warna.

d. IR Sensor Kedua (Penghitungan Jeruk)

  1. Alat dan Bahan:

    • Sensor IR

    • Raspberry Pi Pico

    • LCD (16x2)

  2. Langkah-Langkah:

    • Sambungkan sensor IR ke Raspberry Pi Pico untuk mendeteksi jeruk yang telah disortasi.

      • VCC → 3.3V.

      • OUT → GPIO pin (misal, GP8).

      • GND → GND.

    • Sambungkan LCD ke Raspberry Pi Pico:

      • SCL → GP15.

      • SDA → GP14.

    • Programkan Raspberry Pi Pico untuk menghitung jumlah jeruk yang lewat menggunakan IR sensor kedua.

    • Tampilkan jumlah jeruk pada LCD secara real-time.

Prinsip Kerja:

Sensor IR kedua mendeteksi jeruk yang lewat dan mengirimkan sinyal ke Raspberry Pi Pico. Data jumlah jeruk kemudian ditampilkan secara real-time pada LCD.

Kesimpulan

Dengan integrasi dari sensor IR, Load Cell, TCS3200, dan motor servo, sistem ini mampu:

  • Mendeteksi keberadaan jeruk.

  • Memilah jeruk berdasarkan berat dan warna.

  • Menghitung jumlah jeruk yang telah disortasi dan menampilkannya pada LCD.


UART (Komunikasi Antara Raspberry Pi Pico dan STM32)

Alat dan Bahan:

  • Raspberry Pi Pico

  • STM32

  • Kabel jumper (untuk koneksi serial)

  • Ground bersama

Langkah-Langkah Koneksi UART:

  1. Hubungkan Pin UART:

    • Raspberry Pi Pico (UART TX - GP8) → STM32 (UART RX - PA10)

    • Raspberry Pi Pico (UART RX - GP9) → STM32 (UART TX - PA9)

    • Raspberry Pi Pico (GND) → STM32 (GND)

  2. Konfigurasi UART pada Raspberry Pi Pico:

    • Raspberry Pi Pico bertindak sebagai pengirim data ke STM32 untuk menjalankan fungsi tertentu.

    • Data dikirimkan melalui TX (GP8).

  3. Konfigurasi UART pada STM32:

    • STM32 membaca data dari RX (PA10) yang dikirim oleh Raspberry Pi Pico.

    • STM32 juga dapat mengirimkan data balik ke Raspberry Pi Pico melalui TX (PA9).

  4. Sinkronisasi Ground:

    • Pastikan kedua perangkat memiliki ground yang sama agar komunikasi UART berjalan stabil.

Prinsip Kerja UART dalam Sistem:

  • Proses Pengiriman Data:
    Raspberry Pi Pico mengirimkan data berupa sinyal hasil deteksi IR kedua (misalnya, jumlah jeruk yang telah dihitung) ke STM32. STM32 memproses data tersebut untuk logika kontrol servo berdasarkan berat dan warna jeruk.

  • Proses Penerimaan Data:
    STM32 mengirimkan kembali status sistem (misalnya, data hasil sortasi berat dan warna) ke Raspberry Pi Pico untuk ditampilkan pada LCD.




  • Listing Program

    1. 
    UART Pi Pico

from machine import Pin, UART
import time
from hx711 import HX711

# UART setup
uart = UART(0, baudrate=9600, tx=Pin(8), rx=Pin(9))

# HX711 setup
hx = HX711(d_out=Pin(14), pd_sck=Pin(15))
hx.zero()  # Set nol

# Threshold berat (dalam gram)
threshold = 100  

# Simulasi warna dari TCS3200
# (kamu bisa ganti nanti dengan deteksi warna asli)
def deteksi_warna():
    # return "merah", "kuning", "biru", dll
    return "kuning"

while True:
    # Deteksi berat
    berat = hx.read()
    print("Berat:", berat)

    if berat > threshold:
        uart.write("servo1\n")  # Load cell aktif
        print("Kirim: servo1")
        time.sleep(1)

    # Deteksi warna
    warna = deteksi_warna()
    print("Warna:", warna)

    if warna == "kuning":
        uart.write("servo2\n")  # TCS aktif
        print("Kirim: servo2")
        time.sleep(1)

    time.sleep(0.5)

     2. STM32

from machine import Pin, UART
from hx711 import HX711  # Pastikan kamu sudah punya hx711.py
import time

# UART setup (TX: GP8, RX: GP9)
uart = UART(0, baudrate=9600, tx=Pin(8), rx=Pin(9))

# Load Cell HX711 setup (DT: GP14, SCK: GP15)
hx = HX711(d_out=Pin(14), pd_sck=Pin(15))
hx.tare()  # Kalibrasi awal (tanpa beban)

# TCS3200: input dari pin OUT
warna_pin = Pin(16, Pin.IN)

# Fungsi deteksi warna kuning
def warna_kuning(r, g, b):
    return r > 250 and g > 200 and b < 200

# Fungsi dummy baca RGB (ganti dengan pembacaan real dari TCS3200 jika tersedia)
def baca_rgb_dummy():
    # Simulasikan hasil warna kuning
    return (303, 261, 159)

# Ambang berat (gram)
AMBANG_BERAT = 200  # atur sesuai hasil kalibrasi

while True:
    # Baca warna
    r, g, b = baca_rgb_dummy()
    print("RGB:", r, g, b)

    if warna_kuning(r, g, b):
        uart.write("servo2\n")
        print("Kuning terdeteksi → servo2")

    # Baca berat
    try:
        berat = hx.get_units(5)
        print("Berat:", berat, "gram")

        if berat > AMBANG_BERAT:
            uart.write("servo1\n")
            print("Berat terdeteksi → servo1")
    except Exception as e:
        print("Error HX711:", e)

    time.sleep(1)



Video Menjalankan Rangkaian





 






Download datasheet IR sensor [klik]

Download datasheet LDR (sensor cahaya) [klik]

Download datasheet Sensor Jarak(Touch) [klik]

Download sensor garis (IR) [klik]

Download sensor LDR [klik]

Download sensor jarak  [klik]

Download Datasheet Sensor Load Cell 1 Kg klik disini

Download Datasheet Motor Servo SG90 klik disini

Download Datasheet LCD 16 x 2 klik disini

Download Datasheet Modul HX711 klik disini



Komentar

Postingan populer dari blog ini

Modul 1 Sistem Digital

Home

Modul 3 Sistem Digital