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);
}


