LA_M4

 




Sistem monitoring perawatan dan pemeliharaan marmut


    Marmut (Cavia porcellus), atau guinea pig, adalah hewan pengerat kecil yang menggemaskan dan banyak digemari sebagai hewan peliharaan di berbagai belahan dunia. Dengan sifatnya yang jinak, suara khas "wheek" yang ekspresif, dan perawatan yang relatif mudah, marmut menjadi pilihan menarik bagi banyak pecinta hewan. Namun, di balik daya tariknya, pemeliharaan marmut yang bertanggung jawab memerlukan pemahaman mendalam tentang kebutuhan spesifik mereka untuk memastikan kesehatan dan kesejahteraan optimal.

    Salah satu aspek krusial dalam pemeliharaan marmut adalah manajemen lingkungan kandang yang baik, terutama terkait dengan keberadaan gas amonia. Gas ini, yang umumnya berasal dari penumpukan urin dan feses yang tidak dibersihkan secara teratur, dapat menjadi ancaman serius bagi sistem pernapasan marmut. Paparan jangka panjang terhadap amonia bisa menyebabkan iritasi, infeksi pernapasan, dan berbagai masalah kesehatan lainnya. Oleh karena itu, kebersihan kandang dan sirkulasi udara yang baik adalah kunci.

    Selain itu, asupan nutrisi yang tepat melalui takaran makan yang sesuai dan pemantauan suhu lingkungan yang stabil juga merupakan faktor fundamental dalam menjaga marmut tetap sehat dan aktif. Marmut memiliki kebutuhan diet khusus, termasuk kebutuhan tinggi akan Vitamin C karena tubuh mereka tidak dapat memproduksinya sendiri. Pemberian makanan yang tidak sesuai atau berlebihan dapat menyebabkan masalah pencernaan dan obesitas.

    Marmut membutuhkan lingkungan dengan suhu normal yang stabil, yaitu antara 18°C hingga 24°C (65°F hingga 75°F). Suhu di luar rentang ini, terutama suhu ekstrem yang terlalu panas atau terlalu dingin, dapat menyebabkan stres parah, heatstroke, atau hipotermia, yang berpotensi fatal bagi mereka.

    Mengenai pola makan, marmut adalah hewan herbivora yang membutuhkan makan sepanjang hari (grazing). Mereka biasanya makan dalam porsi kecil namun sering. Idealnya, hay (rumput kering) harus tersedia tanpa batas (ad libitum) sepanjang waktu sebagai sumber serat utama yang krusial untuk kesehatan pencernaan dan gigi mereka. Untuk pelet khusus marmut, takaran umumnya adalah sekitar 15-20 gram per hari per marmut dewasa. Pelet ini sebaiknya diberikan dua kali sehari, misalnya di pagi dan sore hari, untuk melengkapi nutrisi. Selain itu, sayuran segar sekitar satu cangkir (sekitar 100-150 gram) per marmut dewasa per hari juga harus diberikan, dibagi menjadi beberapa porsi untuk memastikan asupan vitamin dan mineral esensial.


Tujuan dari rancangan yang dilakukan yaitu:

  1. Meningkatkan Efisiensi dan Kemudahan Pemeliharaan 

  2. Menjamin Ketersediaan Pakan yang Optimal

  3. Mengontrol Kadar Gas Amonia dan Memastikan Suhu Lingkungan Ideal

 
  • Alat
      1.   Solder
  • Komponen

1.     Raspberry Pi Pico


      2. STM32 


3.     Sensor MQ-2 

            

     4. RTC


      5. Loadcell



      6.  DHT11 



7.     LCD 2×16


8.  Motor DC

9.  Jumper


10.  Motor Servo

11.  Fan

       12. Breadbord




1. PWM (Pulse Width Modulation)

PWM (Pulse Width Modulation) adalah salah satu teknik modulasi dengan mengubah lebar pulsa (Duty Cycle) 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 (%).

        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 Raspberry Pi Pico, hampir semua pin digital dapat digunakan untuk PWM (Pulse Width Modulation) karena tersedia 16 saluran PWM yang dapat dikonfigurasi sesuai kebutuhan. Dalam pemrograman menggunakan MicroPython, PWM diakses melalui modul machine dengan membuat objek PWM dari pin tertentu, misalnya PWM(Pin(15)). Frekuensi PWM default adalah sekitar 1.000 Hz, tetapi dapat diubah menggunakan metode freq(), sedangkan lebar pulsa atau duty cycle diatur dengan metode duty_u16() yang menerima nilai dari 0 hingga 65.535. Nilai 0 berarti output pin selalu berada pada tegangan rendah (0 volt), sedangkan nilai 65.535 berarti pin selalu berada pada tegangan tinggi (3,3 volt). Jika diberi nilai tengah seperti 32.768, maka selama satu siklus, pin akan bernilai tinggi selama 50% waktu dan rendah selama 50% sisanya, menghasilkan duty cycle 50%. Nilai duty cycle lain seperti 16.384 (sekitar 25%) akan menghasilkan pulsa bernilai tinggi selama seperempat siklus dan rendah selama tiga perempatnya. Dengan pengaturan ini, Raspberry Pi Pico memungkinkan pengendalian sinyal analog semu (pseudo-analog) melalui sinyal digital yang dikendalikan waktunya, yang sangat berguna dalam aplikasi seperti pengaturan kecepatan motor, kecerahan LED, atau kontrol posisi servo.

2. ADC (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. 

Pada Raspberry Pi Pico, konversi sinyal analog ke digital dilakukan melalui ADC (Analog to Digital Converter) internal yang tersedia pada beberapa pin, yaitu pin GP26, GP27, dan GP28. Kecepatan sampling menyatakan seberapa sering sinyal analog dibaca dan dikonversi ke sinyal digital dalam satu detik, dan biasanya dinyatakan dalam satuan sample per second (SPS). Resolusi ADC pada Raspberry Pi Pico adalah 12 bit, yang berarti nilai digital yang dihasilkan berkisar antara 0 hingga 4095, memberikan tingkat ketelitian yang lebih tinggi dibandingkan dengan Arduino Uno yang hanya memiliki resolusi 10 bit (0–1023). Tegangan referensi ADC pada Raspberry Pi Pico adalah 3,3 volt, sehingga ADC mampu membaca tegangan analog dari 0 hingga 3,3 volt. Untuk membaca nilai analog, digunakan perintah ADC(Pin(x)).read_u16() dalam MicroPython, di mana nilai yang dihasilkan berupa 16-bit (0 hingga 65.535), meskipun secara fisik hanya menggunakan 12 bit efektif. Nilai ini dapat dikonversi kembali ke bentuk tegangan dengan mengalikan hasil pembacaan dengan 3,3 dan membaginya dengan 65.535. Dengan kemampuan ini, Raspberry Pi Pico dapat membaca sinyal analog dengan lebih presisi dan kecepatan tinggi sesuai kebutuhan aplikasi.

3. Mikrokontroler

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:


Gambar 1. Arduino Uno

Microcontroller

RP2040

Operating Voltage

3.3 V

Input Voltage (recommended)

5 V via USB

Input Voltage (limit)

1.8–5.5 V

Digital I/O Pins

26 GPIO pins

PWM Digital I/O Pins  

16

Analog Input Pins

3

DC Current per I/O Pin

16 mA

DC Current for 3.3V Pin

300mA

Flash Memory                              

2 MB on-board QSPI Flash

SRAM

264 KB

Clock Speed

Hingga 133 MHz       


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 sebagai berikut:  

4. Komunikasi

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

Cara Kerja Komunikasi UART :

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, kemudian ditransfer secara parallel ke data bus penerima.

4.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 mikrokontroler maupun antara mikrokontroler 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.

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

5. Komponen

5.1. RTC (Real Time Clock)


RTC adalah singkatan dari Real Time Clock, yaitu jam elektronik yang terdapat dalam sebuah chip pada motherboard komputer. RTC berfungsi untuk menyimpan dan mengatur waktu saat ini secara akurat, bahkan ketika komputer dimatikan atau tidak terhubung dengan internet. RTC ditenagai oleh baterai CMOS yang terpisah dari sumber daya utama komputer, sehingga jam tidak akan terganggu oleh pemadaman listrik atau perubahan tegangan. RTC juga disebut sebagai CMOS, karena chip RTC memiliki memori kecil yang menyimpan pengaturan sistem komputer, termasuk nilai waktu saat ini.

RTC merupakan salah satu komponen penting dalam komputer, karena waktu merupakan faktor krusial dalam berbagai proses dan aplikasi. RTC memungkinkan komputer untuk mengetahui tanggal dan jam saat ini, sehingga dapat menyesuaikan fungsi dan kecepatan semua operasinya. RTC juga memastikan bahwa semua proses yang terjadi dalam sistem disinkronkan dengan tepat, tanpa adanya kesalahan atau penundaan. RTC juga dapat digunakan untuk menghasilkan peristiwa atau event berdasarkan waktu tertentu, seperti alarm, pengingat, jadwal, atau timer.

Cara kerja RTC :

RTC biasanya terdiri dari beberapa komponen, termasuk osilator kristal yang digunakan untuk menghasilkan sinyal getar yang stabil, perekam waktu (counter), dan penyimpanan non-volatile (biasanya dalam bentuk baterai) yang memungkinkan RTC tetap berfungsi bahkan ketika perangkat mati atau tidak ada sumber daya listrik.

Proses kerja RTC dapat dijelaskan sebagai berikut:

  1. Osilator Kristal: Osilator kristal menghasilkan pulsa getaran yang sangat stabil. Frekuensi getaran ini digunakan sebagai dasar penghitungan waktu.
  2. Perekam Waktu: Perekam waktu adalah sebuah counter yang terus diinkrementasi (ditambahkan) oleh osilator kristal. Setiap kali counter mencapai nilai tertentu, waktu dihitung dalam satuan detik, menit, jam, tanggal, dan tahun.
  3. Penyimpanan Non-Volatile: Informasi waktu yang dihitung oleh RTC disimpan dalam penyimpanan non-volatile, seperti baterai cadangan atau memori EEPROM. Ini memastikan bahwa waktu tetap terjaga bahkan ketika perangkat mati atau baterai utama habis.
  4. Akses dan Sinkronisasi: Ketika perangkat dinyalakan atau dalam kondisi operasional, mikrokontroler atau mikroprosesor dalam perangkat dapat mengakses informasi waktu dari RTC. Dalam beberapa kasus, waktu dapat disinkronkan dengan sumber waktu eksternal, seperti sinyal waktu dari satelit GPS.



5.2. Sensor MQ-2



MQ-2 adalah sensor gas yang dirancang untuk mendeteksi keberadaan berbagai jenis gas mudah terbakar, seperti LPG, asap, metana, butana, dan hidrogen. Sensor ini sering digunakan dalam sistem pendeteksi kebocoran gas atau sistem keamanan rumah dan laboratorium. MQ-2 memiliki sensitivitas yang tinggi dan waktu respon yang cepat terhadap konsentrasi gas di lingkungan sekitarnya. Sensor ini terdiri dari elemen pemanas (heater) dan sensor resistif (SnO₂) yang resistansinya berubah seiring dengan konsentrasi gas yang terdeteksi. Sensor MQ-2 tersedia dalam bentuk modul yang sudah dilengkapi pembagi tegangan serta dua jenis output, yaitu analog (berupa tegangan yang proporsional terhadap konsentrasi gas) dan digital (HIGH atau LOW tergantung ambang batas yang disetel melalui potensiometer).

Cara kerja sensor MQ-2:

Sensor MQ-2 bekerja dengan prinsip perubahan resistansi pada material semikonduktor akibat paparan gas. Saat sensor dinyalakan, elemen pemanas dalam sensor akan memanaskan permukaan semikonduktor SnO₂. Ketika tidak ada gas, resistansi sensor cukup tinggi. Namun, saat ada gas mudah terbakar di sekitarnya, gas akan bereaksi dengan oksigen yang diserap pada permukaan semikonduktor dan menyebabkan penurunan resistansi. Penurunan resistansi ini menghasilkan peningkatan tegangan pada output analog. Output ini kemudian dapat dibaca oleh ADC (Analog-to-Digital Converter) pada mikrokontroler seperti Raspberry Pi Pico. Jika menggunakan output digital, maka sensor akan memberikan sinyal LOW ketika konsentrasi gas melebihi batas yang telah ditentukan oleh pengguna melalui potensiometer di modul sensor.

Grafik respon sensor MQ-2:



5.3. Loadcell



Sensor loadcell merupakan jenis sensor yang digunakan untuk mengubah ukuran beban menjadi sebuah tegangan listrik perubahan tegangan listrik. Perubahan yang terjadi pada tegangan listrik akan bergantung dari besarnya tekanan yang dirasakan atau yang diberikan beban. Untuk sensor loadcell terdapat komponen bernama Strain Gauge didalamnya yang dimana strain gauge adalah komponen elektronika yang berfungsi untuk mengukur sebuah tekanan. Strain gauge menggunakan konfigurasi dari rangkaian jembatan wheatstone. Wheatsetone terangkai dari 4 buah resistor yang dirangkai dengan jenis rangkain kombinasi yaitu paralel dan seri

Cara kerja loadcell:

Secara umum, cara kerja load cells mirip dengan sensor tekanan yaitu untuk mengukur tekanan suatu zat. Beban yang diberikan akan mengakibatkan reaksi terhadap elemen logam pada load cells sehingga mengakibatkan perubahan bentuk secara elastis. Sedangkan, gaya yang ditimbulkan oleh regangan tersebut kemudian dikonversikan ke dalam sinyal listrik oleh strain gauge.

Grafik respon sensor Loadcell:


5.4. LCD


LCD (Liquid-Crystal Display) atau Penampil Kristal Cair adalah layar panel datar atau perangkat optik elektronik termodulasi yang menggunakan sifat modulasi cahaya dari kristal cair (liquid crystal) yang dikombinasikan dengan polarizer. Kristal cair tidak memancarkan cahaya secara langsung, melainkan menggunakan lampu latar atau reflektor untuk menghasilkan gambar berwarna atau monokrom.

Spesifikasi :

        Format tampilan : 16 x 2 karakter 

        Pengontrol bawaan : ST 7066 (atau setara)

        Siklus kerja : 1/16

        5 x 8 titik termasuk kursor

        Supply + 5 V (juga tersedia untuk + 3 V)

        LED dapat digerakkan oleh pin 1, pin 2, pin 15, pin 16 atau A dan K

        N.V. opsional untuk supply + 3 V

5.5. DHT11

Sensor DHT11 bekerja dengan mengukur suhu dan kelembaban udara menggunakan dua komponen utama: sensor suhu dan sensor kelembabanSensor suhu, biasanya menggunakan termistor, mendeteksi perubahan resistansi yang sebanding dengan suhu. Sementara sensor kelembaban menggunakan bahan yang peka terhadap kelembaban, yang juga mengubah resistansi seiring perubahan kelembaban. Data yang diperoleh dalam bentuk sinyal analog, kemudian diubah menjadi sinyal digital oleh chip konverter internal, dan dikirimkan ke mikrokontroler untuk diproses dan ditampilkan. 

Cara Kerja :

Sensor DHT11 terdiri dari elemen penginderaan kelembapan kapasitif dan termistor untuk penginderaan suhu. Kapasitor penginderaan kelembapan memiliki dua elektroda dengan substrat penahan kelembapan sebagai dielektrik di antara keduanya. Perubahan nilai kapasitansi terjadi seiring dengan perubahan tingkat kelembapan. IC mengukur, memproses nilai resistansi yang berubah ini, dan mengubahnya menjadi bentuk digital.

Untuk mengukur suhu, sensor ini menggunakan termistor koefisien suhu negatif, yang menyebabkan penurunan nilai resistansinya seiring dengan peningkatan suhu. Untuk mendapatkan nilai resistansi yang lebih besar bahkan untuk perubahan suhu terkecil, sensor ini biasanya terbuat dari keramik semikonduktor atau polimer.

Kisaran suhu DHT11 adalah dari 0 hingga 50 derajat Celsius dengan akurasi 2 derajat. Kisaran kelembapan sensor ini adalah dari 20 hingga 80% dengan akurasi 5%. Laju pengambilan sampel sensor ini adalah 1Hz, yaitu memberikan satu pembacaan untuk setiap detik. DHT11 berukuran kecil dengan tegangan operasi dari 3 hingga 5 volt. Arus maksimum yang digunakan saat pengukuran adalah 2,5mA.

Grafik Respon Dht11 :



5.6 Motor DC


Motor DC (Direct Current) adalah mesin yang mengubah energi listrik searah menjadi energi mekanik putarCara kerjanya didasarkan pada prinsip gaya Lorentz, yaitu ketika sebuah konduktor berarus listrik ditempatkan dalam medan magnet, maka akan timbul gaya yang menyebabkan konduktor tersebut bergerak. Pada motor DC, gaya ini dimanfaatkan untuk menghasilkan putaran pada rotor. 

Cara Kerja :

  1. Pembentukan Medan Magnet Stator:

    • Ketika motor dihidupkan, magnet permanen pada stator sudah menghasilkan medan magnet yang stabil, dari kutub utara ke kutub selatan.
  2. Aliran Arus pada Kumparan Armatur:

    • Arus listrik DC dari sumber daya (misalnya baterai) dialirkan melalui sikat, kemudian menuju segmen komutator, dan akhirnya masuk ke kumparan armatur.
    • Karena komutator, arus listrik akan masuk ke kumparan armatur dengan arah tertentu di satu sisi kumparan, dan arah berlawanan di sisi lainnya.
  3. Terjadinya Gaya Lorentz:

    • Berdasarkan hukum Lorentz, ketika konduktor berarus (kumparan armatur) berada dalam medan magnet stator, maka akan timbul gaya magnetik pada kumparan tersebut.
    • Arah gaya ini ditentukan oleh arah arus dan arah medan magnet (kaidah tangan kiri Fleming). Pada satu sisi kumparan, gaya akan mendorongnya ke atas, sementara di sisi lain, gaya akan mendorongnya ke bawah.
  4. Pembentukan Torsi dan Putaran:

    • Kedua gaya yang berlawanan arah namun sejajar ini menghasilkan torsi (gaya putar) pada armatur. Torsi inilah yang menyebabkan rotor mulai berputar.
  5. Peran Komutator dalam Putaran Berkelanjutan:

    • Jika tidak ada komutator, armatur akan berputar hingga kutub magnetnya sejajar dengan kutub stator, lalu berhenti.
    • Namun, saat armatur berputar dan mendekati posisi sejajar, komutator akan membalikkan arah aliran arus pada kumparan armatur.
    • Dengan dibaliknya arah arus, arah gaya Lorentz pada kumparan juga akan terbalik. Hal ini memastikan bahwa gaya putar selalu bekerja ke satu arah, mendorong armatur untuk terus berputar. Proses pembalikan arus ini disebut komutasi.
  6. Putaran Berkelanjutan:

    • Proses komutasi yang terjadi secara terus-menerus memungkinkan motor DC untuk menghasilkan torsi dan putaran yang berkelanjutan selama arus listrik masih dialirkan.
  7. Secara sederhana, motor DC mengubah energi listrik menjadi energi gerak putar melalui interaksi antara medan magnet yang dihasilkan oleh stator dan medan magnet sementara yang dihasilkan oleh kumparan armatur yang dialiri arus listrik, dengan bantuan komutator untuk menjaga putaran berkelanjutan.

Spesifikasi :

    


       
                       

5.7. Motor Servo

Motor servo adalah servomekanisme loop tertutup yang menggunakan umpan balik posisi untuk secara tepat mengontrol gerakan dan posisi akhirnya. Secara sederhana, motor servo itu seperti "motor pintar" yang bisa kita perintahkan untuk bergerak ke sudut tertentu dan dia akan memastikan untuk sampai di sana dan bertahan di posisi tersebut, bahkan jika ada gangguan.

Cara Kerja :

Prinsip kerja motor servo didasarkan pada sistem kontrol loop tertutup (closed-loop control system), yang memastikan akurasi dan presisi gerakan. Berikut adalah langkah-langkah cara kerjanya:

  1. Menerima Sinyal Perintah:

    • Motor servo menerima sinyal perintah (biasanya sinyal Pulse Width Modulation/PWM untuk servo hobi) dari kontroler eksternal (misalnya Arduino atau PLC). Lebar pulsa (duty cycle) dari sinyal PWM ini akan menentukan posisi sudut yang diinginkan untuk poros output. Misalnya, pulsa 1.5ms mungkin memerintahkan posisi 90 derajat.
  2. Perbandingan Posisi (Error Detection):

    • Rangkaian kontrol internal (servo driver) membandingkan sinyal posisi yang diperintahkan (dari sinyal PWM) dengan posisi aktual poros yang dilaporkan oleh sensor umpan balik (misalnya potensiometer).
    • Jika ada perbedaan antara posisi yang diinginkan dan posisi aktual, ini disebut sinyal kesalahan (error signal).
  3. Penggerakan Motor:

    • Berdasarkan sinyal kesalahan ini, rangkaian kontrol akan mengirimkan daya listrik ke motor DC/AC. Motor akan mulai berputar untuk mengurangi sinyal kesalahan, yaitu, untuk menggerakkan poros ke posisi yang diinginkan.
    • Roda gigi akan membantu mentransfer gerakan dari motor ke poros output dengan torsi yang lebih tinggi.
  4. Umpan Balik Berkelanjutan:

    • Saat motor berputar, sensor umpan balik terus-menerus melaporkan posisi aktual poros ke rangkaian kontrol. Proses perbandingan dan penyesuaian ini terjadi secara real-time dan berkelanjutan.
  5. Mencapai dan Mempertahankan Posisi:

    • Ketika posisi aktual poros sesuai dengan posisi yang diperintahkan (sinyal kesalahan mendekati nol), rangkaian kontrol akan mengurangi atau menghentikan daya ke motor, membuatnya berhenti pada posisi tersebut.
    • Jika ada gaya eksternal yang mencoba menggeser poros dari posisi yang diperintahkan, sensor umpan balik akan mendeteksi pergeseran tersebut, menciptakan sinyal kesalahan baru, dan motor akan kembali aktif untuk mengoreksi posisi dan mempertahankan posisi yang diperintahkan.

Singkatnya, motor servo secara terus-menerus memantau posisinya sendiri dan menyesuaikan dayanya untuk mencapai dan mempertahankan posisi yang sangat spesifik, membuatnya ideal untuk aplikasi yang memerlukan kontrol gerakan yang presisi seperti robotika, mesin CNC, drone, dan banyak lagi.

Spesifikasi :




            1. Buat rangkaian pada web wokwi dan proteus terlebih dahulu
            2. Buat program pada wokwi dan stm32cubeidedan simulasikan hingga sesuai                     dengan rancangan yang di inginkan
            3. Beli komponen yang dibutuhkan untuk sistem
            4. Rangkai semua komponen hingga semua terhubung
            5. Buat program pada thonny ide dan stm32cubeide lalu upload ke dalam                             raspberry pi pico
            6. Buat prototype dari rangkaian yang sudah fix
            7. Simulasikan dan presentasikan kepada asisten dan dosen

  • Rangkaian Simulasi







  • Prinsip Kerja

     Sistem pemberi pakan dan pemantau lingkungan ini beroperasi sebagai satu unit terkoordinasi yang dikendalikan oleh dua otak komputasi, yaitu Raspberry Pi Pico dan STM32, yang berkomunikasi secara serial melalui protokol UART. Saat sistem dinyalakan, Raspberry Pi Pico selaku unit kontrol utama akan menginisialisasi semua perangkat yang terhubung dengannya, seperti layar LCD, sensor suhu DHT, dan jam digital (RTC). Pico akan langsung menampilkan waktu dan suhu terkini pada layar LCD. Sementara itu, STM32 yang berfungsi sebagai unit kerja presisi akan menyiapkan sensor berat (load cell), sensor gas, dan motor servo. Tugas utama Pico adalah mengatur jadwal; ia terus-menerus memeriksa waktu dari RTC. Tepat pada pukul 8 pagi dan 8 malam, Pico akan mengirimkan perintah melalui UART ke STM32 untuk mulai mengeluarkan pakan. STM32 yang menerima perintah ini akan menggerakkan motor servo untuk membuka wadah pakan sambil terus menimbang berat pakan yang keluar menggunakan load cell. Ketika berat pakan telah mencapai 15 gram, STM32 akan otomatis menutup kembali wadah pakan dan mengirim laporan penyelesaian tugas kembali ke Pico. Selain penjadwalan, Pico juga aktif memantau lingkungan. Jika sensor suhu mendeteksi suhu di bawah 18°C atau di atas 25°C, Pico akan menampilkan peringatan "suhu dingin" atau "suhu panas" pada LCD. Untuk memantau kualitas udara, Pico secara berkala meminta data konsentrasi gas amonia dari STM32. STM32 akan membaca data dari sensor gas, mengolahnya menjadi satuan PPM, dan mengirimkannya ke Pico. Apabila Pico menerima data bahwa konsentrasi gas amonia melebihi 25 PPM, ia akan segera mengaktifkan motor DC (kipas) untuk mengeluarkan gas berbahaya dari area kandang hingga kondisinya kembali normal.

 

  • Flowchart
         







  • Listing Program

A.    Sender

#include "main.h"

#include "string.h"

#include "hx711.h"  // tambahkan


RTC_HandleTypeDef hrtc;

ADC_HandleTypeDef hadc1;

I2C_HandleTypeDef hi2c1;

UART_HandleTypeDef huart1;


… // initialization functions dari CubeMX


int main(void) {

  HAL_Init();

  SystemClock_Config();

  MX_GPIO_Init();

  MX_USART1_UART_Init();

  MX_I2C1_Init();

  MX_ADC1_Init();

  MX_RTC_Init();


  HX711_Init(&hadc1, GPIOA, GPIO_PIN_1, GPIOA, GPIO_PIN_0);

  HX711_Calibrate(2280.0f);


  uint8_t targetReached = 0;

  bool sudahPagi = false, sudahSore = false;

  char txbuf[80];

  DateTime now;

  float berat;


  while (1) {

    HAL_RTC_GetTime(&hrtc, (RTC_TimeTypeDef*)&now, RTC_FORMAT_BIN);

    HAL_RTC_GetDate(&hrtc, (RTC_TimeTypeDef*)&now.DateFormat, RTC_FORMAT_BIN);


    sprintf(txbuf, "Waktu: %02u:%02u\r\n", now.tm_hour, now.tm_min);

    HAL_UART_Transmit(&huart1, (uint8_t*)txbuf, strlen(txbuf), HAL_MAX_DELAY);


    if (now.tm_hour == 0 && now.tm_min == 0) {

      sudahPagi = sudahSore = false;

    }


    if (now.tm_hour == 7 && now.tm_min == 0 && !sudahPagi) {

      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);

      HAL_UART_Transmit(&huart1,(uint8_t*)"Pakan Pagi\r\n",12,HAL_MAX_DELAY);

      HAL_Delay(5000);

      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);

      sudahPagi = true;

    }


    if (now.tm_hour == 17 && now.tm_min == 0 && !sudahSore) {

      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);

      HAL_UART_Transmit(&huart1,(uint8_t*)"Pakan Sore\r\n",12,HAL_MAX_DELAY);

      HAL_Delay(5000);

      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);

      sudahSore = true;

    }


    berat = HX711_ReadAverage(10);

    sprintf(txbuf, "Berat: %.2f g\r\n", berat);

    HAL_UART_Transmit(&huart1,(uint8_t*)txbuf,strlen(txbuf),HAL_MAX_DELAY);


    if (berat >= 15.0f) {

      HAL_UART_Transmit(&huart1,(uint8_t*)"Berat >= 15g!\r\n",16,HAL_MAX_DELAY);

    } else {

      HAL_UART_Transmit(&huart1,(uint8_t*)"Berat < 15g\r\n",14,HAL_MAX_DELAY);

    }


    HAL_ADC_Start(&hadc1);

    HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);

    uint32_t gas = HAL_ADC_GetValue(&hadc1);

    HAL_ADC_Stop(&hadc1);


    sprintf(txbuf, "AMONIA: %lu\r\n", gas);

    HAL_UART_Transmit(&huart1,(uint8_t*)txbuf,strlen(txbuf),HAL_MAX_DELAY);


    HAL_Delay(1000);

  }

}

 

B.    Receiver

from machine import Pin, I2C

import time

from lcd_api import LcdApi

from pico_i2c_lcd import I2cLcd


# --- Konfigurasi LCD I2C ---

I2C_ADDR     = 0x27

I2C_NUM_ROWS = 4

I2C_NUM_COLS = 20


i2c = I2C(1, sda=Pin(18), scl=Pin(19), freq=400000)

lcd = I2cLcd(i2c, I2C_ADDR, I2C_NUM_ROWS, I2C_NUM_COLS)


# Inisialisasi LCD

lcd.clear()

lcd.putstr("Menunggu PIR...")


# --- Konfigurasi Sensor dan LED ---

pir = Pin(27, Pin.IN)

led_merah = Pin(15, Pin.OUT)   # Menyala saat ada gerakan

led_kuning = Pin(14, Pin.OUT)  # Menyala saat tidak ada gerakan


print("Menunggu gerakan...")


# --- Loop Utama ---

while True:

    if pir.value():  # Jika sensor PIR mendeteksi gerakan

        led_merah.value(1)

        led_kuning.value(0)

        print("Gerakan terdeteksi!")

        lcd.clear()

        lcd.putstr("Gerakan TERDETEKSI")

    else:

        led_merah.value(0)

        led_kuning.value(1)

        print("Tidak ada gerakan.")

        lcd.clear()

        lcd.putstr("Tidak ada gerakan")


    time.sleep(0.5)  # Delay kecil untuk menghindari flicker LCD

Link Download File Rangkaian [Unduh]
Link Download Video Percobaan [Unduh]
Link Download HTML [Unduh]
Link Download Program Raspberry [Unduh]
Link Download Pdf Laporan [Unduh]
Link Download Datasheet Raspberry Pi Pico [Unduh]
Link Download Datasheet Sensor MQ-2 [Unduh]
Link Download Library DHT11 Sensor [Unduh]
Link Download Datasheet Servo motor [Unduh]














Tidak ada komentar:

Posting Komentar

BAHAN PRESENTASI UNTUK MATA KULIAH ELEKTRONIKA 2022 Disusun oleh : M. Radhi Azmi (2210952058) Dosen Pengampu : Dr. Darwison, M.T Referensi: ...