Arduino Resources

Here is a book on getting started with Arduino. If you are looking for additional resources it might be helpful.

 

http://shop.oreilly.com/product/9780596155520.do

resistor value calculator

To find out the resistance value of a resistor, you use the colored bands. There are “resistor color code calculators” online where you enter the band colors and it tells you the resistance.

One such website:

http://www.hobby-hour.com/electronics/resistorcalculator.php

 

If you try to enter the colored bands backwards, then it either won’t work or it will tell you that you have entered them backwards.

Also, remember that we only gave you a few different resistors in the course lab kit, so if you are getting a resistance value other than that then there might be some mistake – double check that you got the colors right.

Sample Lab Submission

Description

This is where you will put a description of your assignment. Write a couple paragraphs describing your approach. What does it do? Why did you choose this approach over others? What problems did you run into?

Example:

To build this coffee roaster, I started with a popcorn air popper. This is a common entry level method for roasting coffee. As can be seen in the photo, I removed the plastic body as these tend to melt at the higher temperatures. The popcorn popper is heated with a simple coil and the air is blown by a simple DC motor. I separated the power going to the motor and the coil so that I would be able to control each separately. Right now, I am controlling the heat from the coil with a dimmer switch, but the next version will control it with the Arduino and a relay.

On the Arduino side, I used an Arduino Mini 3.3V. I chose a 3.3V Arduino instead of the regular 5V because I intend to connect an LCD screen as a readout and it takes 3.3V, so it is just easier to use a 3.3V Arduino than use a bunch of resistors to limit the voltage.

The Arduino probes the temperature in the roaster with a thermistor. Although it is a 10kΩ thermistor at 25 degree C, I found that at the range of 400 degree F, the resolution was not sufficient when using a 10kΩ pad resistor. Doing some calculations, I found that in order to maximize the resolution in the range of 400-480 degrees, I needed a pad resistor somewhere in the 50-100Ω range. Luckily I had a 67Ω resistor sitting around.

Components Used

List what you used in your assignment.

Example:

1- Arduino Pro Mini 3.3V

1- Thermistor

1- 67 Ω Resistor

1- Breadboard

1- Popcorn Air Popper

1- 15000W Light dimmer

1- 19.5V DC power supply

Code

Insert your code here.

 

#include <math.h>
#include <Timer.h>
#include <LiquidCrystal.h>

#define temperaturePin A0            //input pin for the orange temperature

//(RS,E,D4,D5,D6,D7)
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int degreeC = 0;
int maxTemp = 0;
String roastLevel = "Green";
Timer t;

void setup()
{
   Serial.begin(9600);
   lcd.begin(16, 2);
   lcd.print(roastLevel);
}

void loop()
{
  degreeC = readTemperature();
  if(degreeC > maxTemp){
    maxTemp = degreeC;
    roastLevel = rLevel(maxTemp);
    lcd.setCursor(0, 0);
    lcd.print(roastLevel);
  }
  lcd.setCursor(0, 1);
  lcd.print(degreeC);
  lcd.setCursor(0, 8);  
  lcd.print(millis()/1000);
  Serial.print(degreeC);
  Serial.print(" degree n");
  Serial.println(roastLevel);
  Serial.println();
  Serial.println();  
  delay(1000);
}

String rLevel(int temp){
  if(temp < 270) {
    return "Green";
  }
  else if(temp < 327) {
    return "Pale";
  }
  else if(temp < 345) {
    return "Yellow";
  }
  else if(temp < 370) {
    return "Light Brown";
  }
  else if(temp < 393) {
    return "Brown";
  }
  else if(temp < 401) {
    return "1st Crack?";
  }
  else if(temp < 415) {
    return "1st Crack";
  }
  else if(temp < 426) {
    return "CITY";
  }
  else if(temp < 435) {
    return "CITY +";
  }
  else if(temp < 444) {
    return "FULL CITY";
  }
  else if(temp < 454) {
    return "FULL CITY +";
  }
  else if(temp < 465) {
    return "VIENNA";
  }
  else if(temp < 474) {
    return "French";
  }
  else if(temp < 486) {
    return "Starbuck";
  }
}

double readTemperature() 
{ 
  /*
  Honewell 135-103LAG-J01
  http://sensing.honeywell.com/index.php?ci_id=3108&la_id=1&pr_id=53805
    Resistance                10,000 Ohm
    Tolerance                 ±10.0%
    Accuracy                  25 °C [77 °F]
    Beta 25/85                3974
    Operating Temperature     -60 °C to 300 °C [-76 °F to 572 °F]
    Diameter              2,0 mm [0.080 in]
    Termination Material      Tinned copper-clad steel
    Lead Length               28,6 mm [1.125 in]
    Time Constant in Air      4.0 s
    Dissipation Constant      2,5 m/W°C
    Series Name               135
 */

//  Calibration
//  120 C  264.46 R
//  140 C  176.97 R *
//  160 C  111.00 R
//  180 C   75.78 R  
//  200 C   64.30 R *
//  220 C   45.57 R
//  240 C   33.25 R *
  const double A = 0.0013514225374904882;
  const double B = 0.00013995347172609127;
  const double C = 0.000002485131588719009;   
  double senReading  =  0;  
  double R;
  double lnr;
  double tempK;
  double tempC;
  double tempF;
  senReading =  analogRead(temperaturePin);
//  Serial.println(senReading);
  R = 66.6*((1024/senReading) - 1);
  Serial.println(R);
  lnr = log(R);
  tempK   = 1 / (A + B * lnr + (C * lnr * lnr * lnr ));
  tempC = tempK - 273.15;            // Convert Kelvin to Celcius
//  Serial.print(tempC);
//  Serial.println(" C");
  tempF = tempC * 9.0/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
  return tempF;
}

Images

Insert your image links if not attached.

Video

Insert a video link when necessary.

 

arduino
Arduino and roaster
circuit
Thermistor

Lab 1: Example Lab Submission

Description

I used Arduino with a green LED. I changed the code to lighting up for 2 seconds and then off for 4 seconds. Uploaded the code and made sure that it has changed.

Components

  • 1 Arduino
  • 1 LED
  • 1 Resistor (220Ω)
  • 1 Breadboard

Code

/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
  delay(2000); // wait for 2 second
  digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
  delay(4000); // wait for 4 second
}
1
2