Sebenarnya, Achim telah membuat poin yang sangat bagus di sini.
Ada perbedaan besar antara relay (switch) Reed (magnet), dan sensor efek Hall.
Terutama, relai Reed akan menghubungkan sakelar kapan pun kekuatan magnet yang cukup bekerja padanya, memberi Anda sinyal on / off. Sensor efek Hall memberikan tingkat tegangan yang menunjukkan seberapa besar gaya magnet yang diterapkan padanya.
Kode yang ditunjukkan di atas hanya akan 'langsung' bekerja dengan relay Reed, yang tidak berarti bahwa itu tidak akan berfungsi sama sekali untuk sensor efek hall, tetapi bahwa itu akan memberikan tantangan tambahan menggunakan sensor hall-effect.
Tantangan utama adalah bahwa Anda memperlakukan perangkat analog sebagai perangkat digital - yang diharapkan akan memicu kenaikan pulsa. Sekarang, sinyal tidak akan berdenyut - umumnya akan seperti bel-kurva, dengan segala macam fluktuasi. Anda mungkin melewati tegangan minimal untuk sinyal tinggi (sekitar 3,5V, IIRC?) Beberapa kali ketika magnet melewati sensor hall-effect.
Tentu saja, insting pertama kami ketika menggunakan sesuatu seperti sensor efek hall adalah menggunakan ADC dan membaca level tegangan pada pin analog. Namun, Anda terbatas pada 10.000 bacaan, kira-kira, per detik pada pin analog (masing-masing bacaan membutuhkan 100uS). Itu juga mengasumsikan bahwa semua yang Anda lakukan adalah loop dan membaca nilai - tidak menyisakan banyak waktu untuk memperbarui tampilan, menghitung, dll. Belum lagi, jika Anda membaca pada waktu yang salah, Anda kehilangan sinyal Anda!
Saya yakin mungkin untuk menggunakan interupsi yang terhubung ke ADC, tetapi saya tidak memiliki pengetahuan seperti itu.
Sebaliknya, jika Anda ingin menggunakan sensor Hall Effect yang sebenarnya , saya sarankan memasukkannya ke pemicu Schmitt untuk mengubahnya menjadi sinyal digital (on / off) pada tingkat yang dikalibrasi yang menunjukkan "langsung di bawah magnet." Selain itu, tergantung pada tingkat histeresis yang diterapkan pada pemicu Schmitt, Anda mungkin perlu melakukan beberapa bouncing yang akan mengubah laju bouncing berdasarkan kecepatan saat ini. Maka Anda bisa memperlakukannya seperti relay Reed normal.
! c