On October 13, 2011, I presented An Introduction to Arduino Microcontrollers to my club, the Milford Amateur Radio Club. Below are links to help get started and other resources. I will be posting the sample projects and code in a separate blog post.
Arduino
Arduino Getting Started Resources
Arduino Getting Started: http://arduino.cc/en/Guide/HomePage
Arduino Language Reference: http://www.arduino.cc/en/Reference/HomePage
Arduino Inventors Guide:
http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-PRINT-85-REV-10.pdf (print quality)
http://www.sparkfun.com/tutorial/AIK/ARDX-EG-SPAR-WEB-REV10.pdf (screen quality)
Oomlaut – http://www.oomlout.com/a/ (authors of Inventor’s Guide)
Arduino Suppliers
Sparkfun – http://www.sparkfun.com/
Also available in Micro Center Mall – in the Cincinnati (Sharonville) Micro Center, walk into the video games area and keep going straight!
Starter Kit: http://www.sparkfun.com/products/10174
Large Kit: http://www.sparkfun.com/products/10173
Adafruit Industries – http://www.adafruit.com/
Starter Kit: http://www.adafruit.com/products/68
Large Kit: http://www.adafruit.com/products/170
Arduino Ham Radio Projects
Trackuino APRS Arduino Open Source Code – http://code.google.com/p/trackuino/
Satellite Doppler Effect Rig Tuner – http://youtu.be/TP_fq_frqKw
Morse Code Keyboard – Gone off the net (was at http://gorsat.wordpress.com/2009/03/17/first-arduino-project-morse-code-keyboard/)
More Morse Code with Arduino – http://kb3vcq.posterous.com/arduino-morse
Microcontrolled Ham Radio – http://www.youtube.com/watch?v=0bca4yNgysw
Arduino AM Transmitter – http://dangerousprototypes.com/2011/10/05/am-sofware-radio-using-arduino/
WSPR Beacon – http://ko7m.blogspot.com/2011/03/wspr-beacon-with-arduino-and-dds-60.html
Arduino Antenna Tuner Controller – http://www.n3ox.net/projects/servo/
Other Noteworthy Projects
Other Cool Stuff and Blogs
Nuts & Volts – http://www.nutsvolts.com/
Hack A Day – http://hackaday.com/
Arduino Blog – http://arduino.cc/blog/
bildr Blog – http://bildr.org/
Tools
Google Code – http://code.google.com/ – code hosting – free for open source
GitHub – https://github.com/ – code hosting – free for open source
Example Sketches
Example #1: Blinking LED
#define LEDPIN 11 #define LSPIN 5 void setup() { pinMode(LEDPIN, OUTPUT); } void loop() { int lightlevel=analogRead(LSPIN); Serial.println(lightlevel); digitalWrite(LEDPIN,HIGH); delay(lightlevel); digitalWrite(LEDPIN,LOW); delay(lightlevel); }
Example 2: Temperature and Humidity on LCD
#include #include // Data wire is plugged into port 7 on the Arduino // Connect a 4.7K resistor between VCC and the data pin (strong pullup) #define DHT22_PIN 7 // Setup a DHT22 instance DHT22 myDHT22(DHT22_PIN); LiquidCrystal lcd(12,11,5,4,3,2); void setup() { lcd.begin(16,2); lcd.clear(); lcd.print("Starting..."); delay(2000); //Serial.begin(9600); } void loop() { DHT22_ERROR_t errorCode; errorCode = myDHT22.readData(); float tempC=0,tempF=0; lcd.clear(); delay(100); switch(errorCode) { case DHT_ERROR_NONE: tempC=myDHT22.getTemperatureC(); tempF=1.8*tempC+32; lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(tempF); lcd.print("F"); lcd.setCursor(0,1); lcd.print("Humidity: "); lcd.print(myDHT22.getHumidity()); lcd.print("%"); break; case DHT_ERROR_CHECKSUM: Serial.print(myDHT22.getTemperatureC()); lcd.setCursor(0,0); lcd.print("Temp: "); lcd.print(myDHT22.getTemperatureC()); lcd.print("C CSUM ERR"); lcd.setCursor(0,1); lcd.print("Humidity: "); lcd.print(myDHT22.getHumidity()); lcd.print("%"); break; case DHT_BUS_HUNG: lcd.setCursor(0,0); lcd.print("BUS Hung"); break; case DHT_ERROR_NOT_PRESENT: lcd.setCursor(0,0); lcd.print("Not Present"); break; case DHT_ERROR_ACK_TOO_LONG: lcd.setCursor(0,0); lcd.print("ACK time out"); break; case DHT_ERROR_SYNC_TIMEOUT: lcd.setCursor(0,0); lcd.print("Sync Timeout"); break; case DHT_ERROR_DATA_TIMEOUT: lcd.setCursor(0,0); lcd.print("Data Timeout"); break; case DHT_ERROR_TOOQUICK: lcd.setCursor(0,0); lcd.print("Polled too quick"); break; } delay(5000); }