CHAM 2018-02-12

From Noisebridge
Jump to navigation Jump to search

Circuit Hacking Arduino Mondays - February 12, 2018[edit]

THIS DOCUMENT: https://www.noisebridge.net/CHAM_2018-02-12

Getting Started[edit]

If you have never worked with an Arduino before, you'll first need to install the Arduino IDE (Integrated Development Environment).

Download and install the Arduino IDE[edit]

  Windows:  https://www.arduino.cc/en/Guide/Windows
  Mac OS X: https://www.arduino.cc/en/Guide/MacOSX
  Linux:    https://www.arduino.cc/en/Guide/Linux
  Web IDE:  https://create.arduino.cc/editor
  You may need to install a separate USB driver to connect with the Arduino board. Speak with one of us.

Arduino Pinout[edit]

(CLICK TO ENLARGE) Uno board pinout.png

Test that your setup works - Blink the Arduino's onboard LED[edit]

Select "Blink from the Arduino IDE's "File > Examples > 01. Basics" menu, or load the code from the following page:

  https://www.arduino.cc/en/Tutorial/Blink

Fun with LEDs[edit]

Let's add one LED to your Arduino breadboard now, and make it blink[edit]

You can either modify the "Blink" example above to use a different pin, or you can follow another example sketch-

  https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-1-blinking-an-led

Blink without the "delay()" function[edit]

A slightly more sophisticated technique- load File > Examples > 02. Digital > BlinkWithoutDelay

PWM: Pulse-width modulation[edit]

Use a digital "~" pin to output a signal which dims and brightens using pulse-width modulation (powering the pin for short bursts)

   Load File > Examples > 03. Analog > Fading

Multiple LEDs at once[edit]

Now let's add multiple LEDs to your breadboard, and make them blink-

  https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-4-driving-multiple-leds

Controlling LEDs with Outside Events[edit]

Adding inputs to control the LEDs: switches

  https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-5-push-buttons

Use a Photoresistor to control an LED![edit]

See Kevin for a photoresistor. Follow these directions to set up the photoresistor, then use the input to control the PWM from above.

https://playground.arduino.cc/Learning/PhotoResistor

Intermediate[edit]

Communicating between two Arduinos with Packet Radios[edit]

Packet Radios! The nRF24L01 is a digital radio chip that Arduinos can use to send and receive data.

Requires two people with an Arduino apiece. Ask Kevin, J, Asim or Joe for a radio module.

Find a partner and follow this document: http://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/

NRF24L01-and-Arduino-Tutorial-Circuit-Schematic.png

Advanced[edit]

Packet Radios^2! Communicate with more than one other radio[edit]

Send an ACK (acknowledgement) message after receiving a message. Let's sender know a receiver got a message. This constitutes bidirectional communication, which http://tmrh20.github.io/RF24/GettingStarted_CallResponse_8ino-example.html

THIS DOCUMENT: https://www.noisebridge.net/CHAM_2018-01-22