Arduino SAMP speedmeter

Heare is a Speed meater by BAXX
an Arduino user.

source: http://www.smartphone-time.com/2011/09/09/arduino-samp-speedmeter/









SAMP sends vehicle speed to a php script which a program on pc reads and echoes that data to COM port, so you can plug in this speed meter to a remote pc and monitor if your friend is speeding in samp.



<-- This is computer softwere.





Read more »
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Arduino Led Fade

Fading


Demonstrates the use of the analogWrite() function in fading an LED off and on. AnalogWrite uses pulse width modulation (PWM), turning a digital pin on and off very quickly, to create a fading effect.


The Circuit




Connect the anode (the longer, positive leg) of your LED to digital output pin 9 on your Arduino through a 220-ohm resistor. Connect the cathode (the shorter, negative leg) directly to ground.





/*
 Fade

 This example shows how to fade an LED on pin 9
 using the analogWrite() function.

 This example code is in the public domain.

 */

int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

void setup()  {
  // declare pin 9 to be an output:
  pinMode(9, OUTPUT);
}

void loop()  {
  // set the brightness of pin 9:
  analogWrite(9, brightness);  

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade: 
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }  
  // wait for 30 milliseconds to see the dimming effect    
  delay(30);                          
}

Read more »
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Arduino Lcd Interface

LiquidCrystal - autoscroll

The Liquid Crystal Library allows you to control LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface.
This example sketch shows how to use the autoscroll() and noAutoscroll() methods to move all the text on the display left or right.
autoscroll() moves all the text one space to the left each time a letter is added
noAutoscroll() turns scrolling off
This sketch prints the characters 0 to 9 with autoscroll off, then moves the cursor to the bottom right, turns autoscroll on, and prints them again.




Hardware Required

  • Arduino Board
  • LCD Screen (compatible with Hitachi HD44780 driver)
  • 10k Potentiometer
  • breadboard
  • hook-up wire










Code


/*
  LiquidCrystal Library - Autoscroll

 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.

 This sketch demonstrates the use of the autoscroll()
 and noAutoscroll() functions to make new text scroll or not.

 The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

 Library originally added 18 Apr 2008
 by David A. Mellis
 library modified 5 Jul 2009
 by Limor Fried (http://www.ladyada.net)
 example added 9 Jul 2009
 by Tom Igoe
 modified 22 Nov 2010
 by Tom Igoe

 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */


// include the library code:
#include

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  // set up the LCD's number of columns and rows: 
  lcd.begin(16,2);
}

void loop() {
  // set the cursor to (0,0):
  lcd.setCursor(0, 0);
  // print from 0 to 9:
  for (int thisChar = 0; thisChar < 10; thisChar++) {
   lcd.print(thisChar);
   delay(500);
  }

  // set the cursor to (16,1):
  lcd.setCursor(16,1);
  // set the display to automatically scroll:
  lcd.autoscroll();
  // print from 0 to 9:
  for (int thisChar = 0; thisChar < 10; thisChar++) {
    lcd.print(thisChar);
    delay(500);
  }
  // turn off automatic scrolling
  lcd.noAutoscroll();
 
  // clear screen for the next loop:
  lcd.clear();
}



Read more »
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Arduino Bar led Timer

The Arduino Kitchen Timer is a simple timer based around a 10 bar LED Bar Graph, with a Piezo-Electric Buzzer. A line of 10 LED's could also be used, and each LED represents a segment of 5 mins. Once the Arduino is reset the user holds a pushbutton and the Bar Graph counts up in chunks of 5 mins, until the user lets go of the button. The timer then times 5 mins, and the last LED is turned off, etc until the timer is finished. The LED bar graph then shows a display, and a piezo buzzer sounds an alarm.


The project is made by Ari Cooper Davis








Make it:
you will need:
An Arduino


Jumper Wires



A momentary push button


A 10 Bar LED Bar Graph or 10 Normal red Leds


A Piezoelectric Buzzer


A 10k resistor

Now build the circuit
Build It!

And here is the Code

/*
  Kitchen_Timer
 
 Counts up LED's on a bar graph to indicate 5 minute icrements being added to
 a timer circuit. A button is held to count up the LED's, and when the timer
 finishes the Bar Graph shows a graphic, and a piezo-electric buzzer sounds.
 
 The circuit:
 * LED bar graph attached from pins (13-3 excluding 9) to ground 
 * pushbutton attached to pin 2 from +5V
 * 10K resistor attached to pin 2 from ground
 * piezo buzzer attached to pin 9 from ground
 
 * Note: I recommend doing this on an arduino shield, as this requires a good
 amount of wire jumpers.
 
 Created in 2011 ©
 by Ari Cooper Davis [anonymouse197@gmail.com]
 http://www.instructables.com/member/anonymouse197/

 */

 // constants (const) won't change. They're used here to set pin numbers:

 const int buttonPin = 2;     // the number of the pushbutton pin
 const int ledPin =  13;      // the number of the 1st LED pin
 const int led2Pin = 12;      // the number of the 2nd LED pin
 const int led3Pin = 11;      // the number of the 3rd LED pin
 const int led4Pin = 10;      // the number of the 4th LED pin
 const int led5Pin = 8;       // the number of the 5th LED pin
 const int led6Pin = 7;       // the number of the 6th LED pin
 const int led7Pin = 6;       // the number of the 7th LED pin
 const int led8Pin = 5;       // the number of the 8th LED pin
 const int led9Pin = 4;       // the number of the 9th LED pin
 const int led10Pin = 3;      // the number of the 10th LED pin
 const int speakerOut = 9;

 // variables will change. They're used mostly for functions:

 int buttonState = 0;         // variable for reading the pushbutton status
 int tastyTimeVariable = 0;   // variable for defining time to wait
 int iVariable = 0;           // variable for repeating display alarm
 int tVariable = 0;           // variable for repeating piezo alarm

 void setup() {
  // initialize the LED pins as output pins:
  pinMode(ledPin, OUTPUT);    
  pinMode(led2Pin, OUTPUT); 
  pinMode(led3Pin, OUTPUT);
  pinMode(led4Pin, OUTPUT);    
  pinMode(led5Pin, OUTPUT); 
  pinMode(led6Pin, OUTPUT); 
  pinMode(led7Pin, OUTPUT);    
  pinMode(led8Pin, OUTPUT); 
  pinMode(led9Pin, OUTPUT); 
  pinMode(led10Pin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);     
  // initialize the piezo pin as an output
  pinMode(speakerOut, OUTPUT);
  delay(1000);
 }

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(ledPin, HIGH);
   } 
  else {
  }
  
  delay(1000);  // a second delay for adding time increments
  
  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led2Pin, HIGH);
   } 
  else {
  }

 delay(1000);

  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led3Pin, HIGH);
   } 
  else {
  }
  
   delay(1000);
   
   buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led4Pin, HIGH);
   } 
  else {
  }
  
   delay(1000);
   
   buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led5Pin, HIGH);
   } 
  else {
  }
  
   delay(1000);
   
   buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led6Pin, HIGH);
   } 
  else {
  }
  
   delay(1000);
   
   buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led7Pin, HIGH);
   } 
  else {
  }
  
  delay(1000);
  
    buttonState = digitalRead(buttonPin);
   if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led8Pin, HIGH);
   } 
  else {
  }

 delay(1000);

    buttonState = digitalRead(buttonPin);
   if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led9Pin, HIGH);
   } 
  else {
  }

 delay(1000);

     buttonState = digitalRead(buttonPin);
    if (buttonState == HIGH) {     
    // add to timer    
    ++tastyTimeVariable;
    digitalWrite(led10Pin, HIGH);
   } 
  else {
  }

  // The above code runs to add 1 to the tastyTimeVariable if the button is
  // pressed, so that the arduino knows how long it should time for.

 delay(1000);
 
 digitalWrite(led10Pin, LOW);
 digitalWrite(led9Pin, LOW);
 digitalWrite(led8Pin, LOW);
 digitalWrite(led7Pin, LOW);
 digitalWrite(led6Pin, LOW);
 digitalWrite(led5Pin, LOW);
 digitalWrite(led4Pin, LOW);
 digitalWrite(led3Pin, LOW);
 digitalWrite(led2Pin, LOW);
 digitalWrite(ledPin, LOW);

 delay(1000);

  // The above code turns all LED's off, so as to make sure they do not
  // interfere later on in the coding.

 if (tastyTimeVariable == 0) {
 }

 else if (tastyTimeVariable == 1) {
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);  // 5 minutes. This can be changed to change increments
 }
 
 else if (tastyTimeVariable == 2) {
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }

 else if (tastyTimeVariable == 3) {
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
 
 else if (tastyTimeVariable == 4) {
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
 else if (tastyTimeVariable == 5) {
  digitalWrite (led5Pin, HIGH); 
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led5Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
 else if (tastyTimeVariable == 6) {
  digitalWrite (led6Pin, HIGH);
  digitalWrite (led5Pin, HIGH); 
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led6Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led5Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
  else if (tastyTimeVariable == 7) {
  digitalWrite (led7Pin, HIGH);
  digitalWrite (led6Pin, HIGH);
  digitalWrite (led5Pin, HIGH); 
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led7Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led6Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led5Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
  else if (tastyTimeVariable == 8) {
  digitalWrite (led8Pin, HIGH);
  digitalWrite (led7Pin, HIGH);
  digitalWrite (led6Pin, HIGH);
  digitalWrite (led5Pin, HIGH); 
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led8Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led7Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led6Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led5Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
  else if (tastyTimeVariable == 9) {
  digitalWrite (led9Pin, HIGH);
  digitalWrite (led8Pin, HIGH);
  digitalWrite (led7Pin, HIGH);
  digitalWrite (led6Pin, HIGH);
  digitalWrite (led5Pin, HIGH); 
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led9Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led8Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led7Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led6Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led5Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
  else if (tastyTimeVariable == 10) {
  digitalWrite (led10Pin, HIGH);
  digitalWrite (led9Pin, HIGH);
  digitalWrite (led8Pin, HIGH);
  digitalWrite (led7Pin, HIGH);
  digitalWrite (led6Pin, HIGH);
  digitalWrite (led5Pin, HIGH); 
  digitalWrite (led4Pin, HIGH);
  digitalWrite (led3Pin, HIGH);
  digitalWrite (led2Pin, HIGH);
  digitalWrite (ledPin, HIGH);
  delay(300L * 1000L);
  digitalWrite (led10Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led9Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led8Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led7Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led6Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led5Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led4Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led3Pin, LOW);
  delay(300L * 1000L);
  digitalWrite (led2Pin, LOW);
  delay(300L * 1000L);
  }
  
  else if (tastyTimeVariable > 10)  {
  }
  
  if (tastyTimeVariable == 0)  {
  }
  
  else {
    
    for(int iVariable = 0; iVariable < 1000; iVariable++) { // alarm length
    
  digitalWrite(ledPin, HIGH);
  delay(100);
  digitalWrite(led2Pin, HIGH);
  delay(100);
  digitalWrite(led3Pin, HIGH);
  digitalWrite(ledPin, LOW);
  delay(100);
  digitalWrite(led4Pin, HIGH);
  digitalWrite(led2Pin, LOW);
  delay(100);
  digitalWrite(led5Pin, HIGH);
  digitalWrite(led3Pin, LOW);
  delay(100);
  digitalWrite(led6Pin, HIGH);
  digitalWrite(led4Pin, LOW);
  delay(100);
  digitalWrite(led7Pin, HIGH);
  digitalWrite(led5Pin, LOW);
  delay(100);
  digitalWrite(led8Pin, HIGH);
  digitalWrite(led6Pin, LOW);
  delay(100);
  digitalWrite(led9Pin, HIGH);
  digitalWrite(led7Pin, LOW);
  delay(100);
  digitalWrite(led10Pin, HIGH);
  digitalWrite(led8Pin, LOW);
  delay(100);
  digitalWrite(led9Pin, LOW);
  delay(100);
  digitalWrite(led10Pin, LOW);
  delay(400);
  
  // The above code creates a loading bar effect with the LED's
  
  for(int tVariable = 0; tVariable < 5; tVariable++) {  // another loop function
    analogWrite(speakerOut, 150);
    delay(50);
    analogWrite(speakerOut, 0);
    delay(50);
    analogWrite(speakerOut, 5);
    delay(50);
    analogWrite(speakerOut, 0);
    delay(50);
    }
    
    // The above code creates a buzzer noise alarm
    
   }
  }
  
}
And at last the proof Video
Read more »
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati

Breadboard Sanguino




Parts
Breadboard


Atmega644


16MHz crystal


momentary switch


4 x .1uF capacitor









2 x 22pF capacitor


10K resistor


And some wire.

Put the bread board down vertically. Row 1 at top, blue rail left, red rail right.
Place the 644p into the bread board. Pin 1 into bread board hole 10D.
Place the momentary switch's pins into bread board 1D, 1F, 3D, and 3F.
Place the crystal into rows 31E and 33E
Place a .1 uF cap from 9E to 9F. This is the reset on RTS cap. We'll be "building" a serial port on the left side, rows 4-9.
Place a .1 uF cap from 18I to 19I. Decouple AREF from AGND.
Place a .1 uF cap from 19I to 20I. Decouple AVCC from AGND. Yep, 19I, has 2 cap leads in it. It's a tight fit but can be done.
Place a .1 uF cap from 19C to 20C. Decouple VCC from GND.
Place 10K resistor from left VCC rail to 18A. This is the pull up resistor for RESET. Strictly speaking it isn't necessary. The 644p has an internal pull up resistor. But it's a little tiny one. Common practice seems to be to use a bigger one off chip.
Place a 22pf capacitor from left GND rail to 31A.
Place a 22pf capacitor from left GND rail to 33A.
Breadboard Sanguino




** Wires **
1A to left GND. Part of the reset circuit from momentary switch to ground. Pressing switch connects reset to ground, resetting the chip. Also bridges GND from left GND rail to right GND rail through momentary switch.
1J to right GND rail.
3C to 9B. This will carry RESET from the RESET cap to the momentary switch.
4J to GND. Carry GND to serial port.
6J to VCC. Carry VCC to serial port.
7A to 23A, and 7E to 7G. Bring Rx to serial port.
8A to 24A, and 8E to 8G. Bring Tx to serial port.
9C to 18C. Bring RESET from chip to reset cap.
18J to right VCC. AREF.
19A to left VCC, chip VCC.
19J to right GND. AGND.
20A to left GND, chip GND.
20J to right VCC. AVCC.
21C to 31C. XTAL from chip to crystal.
22C to 33C. XTAL from chip to crystal.




Serial "port" is on the breadboard side B, column h, rows 4-9. FTDI USB cable black wire to row 4, green to row 9.
The FTDI cable has a female header. The short side of a male header is too short to fit into the breadboard. Easiest if you have them, is to use double length male headers to connect FTDI female connector to bread board hole. More likely you'll need to take two of the 6 pin male headers, and solder the short legs to each other. See the picture. Normally I use shrink fit tubing over bare wire after I solder to protect against shorts. But, there's no way to get them on in this case. So just solder REAL carefully.
To use the serial port, plug the FTDI cable into your computer and into the double sided male header you just created, which in turn is placed into the breadboard.


ICSP "port" is on side A, column B, rows 15-20.
Both the AVR MK-ISP2 and the USBTiny use a 6 pin ICSP female header, in a 2 row by 3 pin configuration. We need to make a cable going from a 2x3 male header to a 1x6 male header. We need to make the following cable using text mode "art":
Note, we are looking at the 2x3 header from the bottom. That is, at the pins.
To construct this cable, use either a crimping tool or solder. If you solder, split the ribbon cable back far enough that you can get in a bit of heatshrink without it shrinking when you solder the wire to the short side of the pin. After the wire is soldered, pull down the heat shrink to cover the joint, then shrink the tubing.
To use the ICSP port, plug your programmer into your computer, and the converter cable you created above into the 2x3 female connector of the programmer's cable. Green pin is pin 1, black is pin 6. Now plug the 1x6 end of the converter cable into the breadboard. Grey pin in hole 15B, Black in hole 20B.
Read more »
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Reddit
  • Spurl
  • StumbleUpon
  • Technorati