Proses manufaktur
| × | 3 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 3 |
|
Saya sedang membaca beberapa artikel di mana, penulis mencoba untuk mengesankan tentang pengaruh waktu Reaksi pada kehidupan atlet, penembak jitu, pemain kriket dan bisbol. Akhirnya dia menyimpulkan dengan efeknya pada kehidupan orang normal dan saya kagum melihat waktu reaksi memiliki banyak implikasi pada kehidupan kita sehari-hari.
Misalnya, waktu reaksi yang lebih lambat dari biasanya saat mengemudi dapat berakibat buruk.
Saya berpikir, Bagaimana cara mengukur waktu reaksi saya?
Berikut adalah hasilnya.
Langkah 1:Hal-hal yang kita perlukan
Berikut adalah daftar hal-hal yang kita perlukan untuk mengukur waktu reaksi kita.
Perangkat Keras:
Perangkat Lunak:
Komponen yang disebutkan di atas harus diletakkan di lantai penghobi elektronik :).
Jika Anda ragu tentang salah satu komponen seperti apa, lihat saja gambarnya.
Langkah 2:Apa prosedur kita untuk mengukur waktu reaksi (RT)?
Ada banyak waktu reaksi yang terlibat dengan tubuh manusia kita. kami memiliki Audio RT, RT visual, RT Sentuh dan banyak lagi. Dalam instruksi ini kita akan melihat pengukuran
Waktu Reaksi Visual.
Prosedur pengukuran Waktu Reaksi Visual:
Izinkan saya menjelaskan bahwa dari daftar komponen perangkat keras yang telah saya sebutkan, dari 3 tombol, satu tombol akan bertindak sebagai tombol siap dan dua tombol lainnya akan
sesuai dengan dua LED yaitu LED1-->BUTTON1 , LED2-->BUTTON2. yang berarti jika LED1 menyala orang yang sedang diuji harus menekan BUTTON1 sama halnya dengan
LED2.
Langkah 3:Menyatukan semuanya
Pada gambar di atas Anda dapat melihat konstruksi sirkuit. izinkan saya memberikan beberapa poin di sini.
Harap Diperhatikan: Nomor pin yang saya sebutkan di atas dapat bervariasi sesuai pilihan Anda, saya baru saja menyebutkan preferensi saya.
Langkah 4:Mari Membuat Kode
Saya telah melampirkan kode Arduino untuk instruksi, yang dapat Anda unduh dan mulai mainkan, tetapi saya sarankan Anda menulis sendiri. Berikut adalah beberapa poin yang perlu Anda ingat saat menulis kode.
Jika Anda ragu dengan salah satu langkah di atas, lihat saja video terlampir.
Langkah 5:Waktu pengujian
Semua siap, hubungi teman Anda dan lihat siapa yang tercepat. Siapkan chart take average (lebih baik buat arduino melakukannya) dan nyatakan pemenangnya. Saya telah melampirkan video demo saya, silakan lihat. Waktu reaksi visual rata-rata bagi kami adalah sekitar 250 md.
PS:jika lebih dari ini setelah minum, tolong jangan mengemudi.
// setel nomor pin:const int buttonPin1 =4; // jumlah tombol tekan1 pinconst int buttonPin2 =2; // jumlah tombol tekan2 pinconst int buttonPin3 =7; // jumlah tombol tekan3 pinconst int ledPin1 =8; // jumlah anoda LED1(+) pinconst int ledPin2 =12; // jumlah pin anoda(+) LED2// Variabel akan berubah:int ledState1 =LOW; // status LED1int ledState2 =LOW; // status LED2int buttonState1 saat ini; // pembacaan saat ini dari input pin1int buttonState2; // pembacaan saat ini dari input pin2int buttonState3; // pembacaan saat ini dari input pin3int lastButtonState1 =LOW; // pembacaan sebelumnya dari input pin1int lastButtonState2 =LOW; // pembacaan sebelumnya dari input pin2int lastButtonState3 =LOW; // pembacaan sebelumnya dari input pin3// variabel berikut panjang karena waktu, diukur dalam mikrodetik,// akan dengan cepat menjadi angka yang lebih besar daripada yang dapat disimpan dalam int.unsigned long lastDebounceTime =0; // terakhir kali pin output di-togglelong debounceDelay =20000; // waktu debounce dalam micro secondunsigned long randNumber; // Menghasilkan nomor acak yang tidak ditandatangani minRandomNumber =2000; // jumlah minimum yang digunakan untuk menentukan kisaran bilangan acak yang tidak ditandatangani panjang maxRandomNumber =5000; // angka maksimum yang digunakan untuk menentukan kisaran angka acak waktu lama yang tidak ditandatangani1,time2;int button3Pressed =LOW;int printcount =0;int takeReading =LOW;//variabel berikut membantu dalam tombol membaca pinsint reading1;int reading2;int reading3;/ /variabel berikut membantu dalam membaca tombol yang sesuai dengan led tertentu yaitu LED1 --> BUTTON1 dan LED2 --> BUTTON2int oddNumber;int evenNumber;void setup(){ pinMode(buttonPin1, INPUT); pinMode(tombolPin2, INPUT); pinMode(tombolPin3, INPUT); pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); //mengaktifkan komunikasi serial Serial.begin(115200); // setel status awal LED digitalWrite(ledPin1, ledState1); digitalWrite(ledPin2, ledState2); // jika pin input analog 0 tidak terhubung, derau // analog acak akan menyebabkan panggilan ke randomSeed() untuk menghasilkan // nomor seed yang berbeda setiap kali sketsa dijalankan. // randomSeed() kemudian akan mengacak fungsi acak. randomSeed(analogRead(0));} void loop() { if( printcount ==0) { Serial.println("tekan tombol 3 saat Anda siap"); jumlah cetak =1; takeReading =RENDAH; // untuk tidak membaca tombol nomor 1 dan 2 oddNumber =LOW; genap =RENDAH; } if( button3Ditekan ==TINGGI) { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, RENDAH); randNumber =acak(minRandomNumber,maxRandomNumber); // dalam kode kami, kami menyimpannya sebagai penundaan 2000 hingga 5000 (randNumber); if ( randNumber &1 ==1) { digitalWrite(ledPin1, HIGH); digitalWrite(ledPin2, RENDAH); waktu1 =mikro(); //Serial.println("GANJIL"); ganjilNumber =TINGGI; } else { digitalWrite(ledPin1, RENDAH); digitalWrite(ledPin2, TINGGI); waktu1 =mikro(); //Serial.println("BAHKAN"); genap =TINGGI; } button3Tekan =RENDAH; } read3 =digitalRead(buttonPin3); //baca button3 if(takeReading ==HIGH) { if(oddNumber ==HIGH) reading1 =digitalRead(buttonPin1); if(evenNumber ==HIGH) reading2 =digitalRead(buttonPin2); } // Jika sakelar berubah, karena suara atau penekanan:if (reading1 !=lastButtonState1 || reading2 !=lastButtonState2 || reading3 !=lastButtonState3) { // reset timer debouncing lastDebounceTime =micros(); } if ((micros() - lastDebounceTime)> debounceDelay) { // apa pun pembacaannya, sudah ada lebih lama // daripada penundaan debounce, jadi anggap itu sebagai status aktual saat ini:// jika status tombol telah diubah:if (reading1 !=buttonState1) { buttonState1 =reading1; // hanya mengaktifkan LED jika status tombol baru HIGH if (buttonState1 ==HIGH) { Serial.print("Waktu reaksi Anda adalah:"); Serial.print(WaktuDebounceTerakhir - waktu1); Serial.println("kami"); Serial.println(); jumlah cetak =0; } } if (reading2 !=buttonState2) { buttonState2 =reading2; // hanya mengaktifkan LED jika status tombol baru HIGH if (buttonState2 ==HIGH) { Serial.print("Waktu reaksi Anda adalah:"); Serial.print(WaktuDebounceTerakhir - waktu1); Serial.println("kami"); Serial.println(); jumlah cetak =0; } } if (reading3 !=buttonState3) { buttonState3 =reading3; // hanya mengaktifkan LED jika status tombol baru HIGH if (buttonState3 ==HIGH) { Serial.println("READY TO GO"); button3Ditekan =TINGGI; takeReading =TINGGI; } } } // menyimpan bacaan. Lain kali melalui loop, // itu akan menjadi lastButtonState:lastButtonState1 =reading1; lastButtonState2 =membaca2; lastButtonState3 =reading3;}
Proses manufaktur
Komponen dan persediaan Arduino Due × 1 Regulator Linier dengan Output yang Dapat Disesuaikan × 1 Texas Instruments Tujuan Umum Dual Op-Amp × 1 Resistor 20k ohm × 3 Resistor 220 ohm × 1 Resistor 1k ohm × 2 NPN Transistor Serbaguna
Komponen dan persediaan Arduino Nano R3 × 1 Resistor 10k ohm × 1 Resistor 1k ohm × 1 Resistor 100 ohm × 1 Resistor 100k ohm × 1 Resistor 1M ohm × 1 ElectroPeak 0.96 Modul Tampilan OLED 64x128 × 1 Kabel jumper (generik)
Komponen dan persediaan Arduino Nano R3 × 1 Penguat operasional IC TL061 × 1 Resistor 10k ohm × 2 Resistor 1M ohm × 1 Kapasitor Cakram Keramik, 39 pF × 1 kumparan sekunder dari trafo 1-2W kecil × 1 Alat dan mesin yang diperlukan
Komponen dan persediaan Arduino UNO × 1 Adafruit LCD Standar - 16x2 Putih di Atas Biru × 1 Sakelar Tombol Tekan SparkFun 12mm × 4 Resistor 10k ohm × 4 Resistor 221 ohm Yah, 220 ohm... × 2 Potensiometer Putaran Tunggal- 100k ohm × 1