Untuk proyek sains putri saya (kategori Ilmu Komputer dan Matematika), ia ingin menggunakan RPi untuk berkeliling dan mengukur apakah suara keras yang berbeda berada di atas ambang rasa sakit dan merusak telinga kita. Dia adalah siswa kelas 6, tetapi dia memiliki pengalaman dengan RPi dan pemrograman dengan Python. Phillip Heels Nichols telah menjawab beberapa pertanyaan di halaman FB RPi, tetapi menyarankan agar kami datang ke sini untuk bantuan lebih lanjut. Dia ingin mengkalibrasi Pi dengan pengukur tekanan suara (saya punya satu di antaranya) untuk mencari tahu berapa milivolt yang dihasilkan
Inilah yang kami pikirkan sejauh ini. Kami membeli adc (mcp3008) dari adafruit dan menunggu kedatangannya. Jika kita menghubungkan output digital dari adc ke pin GPIO 11 dan pin GPIO 12 ke LED merah, apakah program sederhana ini akan berfungsi?
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.IN)
GPIO.setup(12,GPIO.OUT)
GPIO.output(12,GPIO.LOW) #make sure LED is off
SPL=0 #zero the variable
While SPL<??: #Where ?? is the value in millivolts produced by a sound at 130 db
SPL=GPIO.input(11) #get value from adc connected to microphone
GPIO.output(12,GPIO.HIGH) #turn LED on if the sound level is higher than ??
Jika ini berhasil, kode apa yang bisa diletakkan di akhir untuk mereset program dengan menekan tombol yang terhubung ke pin GPIO? Dia ingin ini portabel, jadi dia tidak akan bisa mengetik perintah untuk menjalankan program lagi.