Exercise 3: Switches

Introduction

Switches exist in various incarnations. There are the simple mechanical switches: on/off or push button switches but there are also switches than turn on or off with various external conditions:

  • temperature
  • infra red radiation (e.g. the Passive Infrared Sensor or PIR sensor)
  • Hall switches detecting magnetic field
  • microphone switches which turn on when a certain noise level is detected
In this exercise we will use a mechanical push button switch

button.png

and a PIR sensor.

pir.png

Exercise 1:

The push button switch is connected to GPIO 17 on the ESP32 board.

Write a script that polls the state of the switch every 100 ms and prints state changes (only print out a message when the switch state has changed). Catch <ctrl> C to smoothly exit the program.

Check https://docs.micropython.org/en/latest/esp8266/tutorial/pins.html and https://docs.micropython.org/en/latest/esp32/quickref.html for information on how to accomplish this.

Exercise 2:

Do the same thing as in exercise 1 but use external interrupts and a callback routine to do the job.

Exercise 3:

Combine this exercise with the exercise on LEDs: Switch the builtin LED on when the button is pressed and off when it is released

Exercise 4:

Write a program scanning the PIR sensor, indicating if a person is close. The PIR sensor, just like the push button, uses a single GPIO line as input. The boards allows to choose which GPIO to use and I selected D4 = GPIO 16

Exercise 5:

The sensor kit in the lab contains a big number of sensors acting like switches:

  • rolling ball switch
  • mercury switch
  • noise level detector (microphone)
  • hall sensor (detecting magnetic field)
  • reed relay (detecting magnetic field)
  • and many more...
Connect these sensors to the ESP32 and try them with the programs developed in exercise 1-3

-- Uli Raich - 2020-05-06

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng button.png r1 manage 279.6 K 2020-05-06 - 09:01 UliRaich  
Unknown file formatodt exercise_3.odt r1 manage 622.1 K 2020-08-09 - 08:45 UliRaich  
PNGpng pir.png r1 manage 319.4 K 2020-05-06 - 09:01 UliRaich  
Edit | Attach | Watch | Print version | History: r9 | r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r5 - 2020-08-09 - UliRaich
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback