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

http://www.arduino.cc

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

Argent Data APRS Radio Shield – https://www.argentdata.com/catalog/
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

Make Magazine – http://makeprojects.com/
Nuts & Volts – http://www.nutsvolts.com/
Hack A Day – http://hackaday.com/
Arduino Blog – http://arduino.cc/blog/
bildr Blog – http://bildr.org/

Tools

Fritzing – http://fritzing.org/ – use to make nice diagrams and schematics.  Free/open source
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);
}

Category: Arduino
Tags:

About the Author

Andrew is the owner of this blog and enjoys computer programming, building things, and photography. He's a pretty busy guy, which explains why updates to this blog are so infrequent.

Comments are closed.


%d bloggers like this:

This is the new server