Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Ukur waktu reaksi Anda

Komponen dan persediaan

tombol tekan
× 3
LED 5 mm:Merah
× 2
Kabel Jumper Pria/Pria
× 1
Breadboard (generik)
× 1
Arduino UNO
× 1
Kabel USB-A ke B
× 1
Resistor 100 ohm
× 2
Resistor 10k ohm
× 3

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

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:

  • IDE Arduino

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:

  • Buat pesan di monitor serial Arduino "tekan tombol siap saat Anda siap"
  • Saat orang yang diuji menekan tombol siap, setelah beberapa interval waktu acak , salah satu dari dua LED harus menyala juga secara acak.
  • Orang yang sedang diuji harus menekan tombol yang sesuai sesegera mungkin.
  • Arduino akan mencatat perbedaan waktu antara lampu LED menyala dan orang yang menekan tombol yang sesuai.
  • Masukkan pesan waktu reaksi terukur pada monitor serial Arduino.

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.

  • hubungkan 5V dan GND dari board arduino ke breadboard Anda.
  • hubungkan katoda kedua LED melalui resistor 100 Ohm yang membatasi arus.
  • hubungkan anoda LED1 dan LED2 masing-masing ke pin nomor 8 dan 12.
  • tombol tekan plugin seperti yang ditunjukkan pada gambar. (jika tombol ditekan saat tombol terbuka, kabel di sisi samping korsleting, saat tombol ditekan kabel diagonal
  • mendapat korsleting)
  • hubungkan resistor 10K Ohm seperti yang ditunjukkan pada gambar, ini berfungsi sebagai resistor pull-down.
  • hubungkan kabel lain ke rel 5V di papan tempat memotong roti.
  • dan terakhir sambungkan tombol ke pin nomor 2, 4, dan 7 papan Arduino.

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.

  • Berhati-hatilah dengan Penolakan tombol tekan.
  • Berhati-hatilah agar kode memberikan resolusi yang baik dalam mengukur waktu reaksi.
  • Gunakan monitor serial untuk debugging serta antarmuka manusia.

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.


Kode

  • Kode Arduino untuk mengukur waktu reaksi Anda.
Kode Arduino untuk mengukur waktu reaksi Anda.Arduino
jalankan saja kodenya dan buka monitor serial.
// 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;}

Skema


Proses manufaktur

  1. Apakah Saatnya Mengganti Fork Forklift Anda?
  2. Alarm Tanaman Peringatan Haus
  3. Jam Kata Italia
  4. Hanya Tiga Pin untuk Keypad 4x3
  5. Sigfox kWh Meter
  6. Pemantau Suhu Bluetooth
  7. Kunci yang Dikendalikan Gerakan
  8. IC Pendamping
  9. Input Analog Terisolasi untuk Arduino
  10. Apakah Sudah Saatnya Meningkatkan Kompresor Anda?