Vibration motor: Difference between revisions

From air
Jump to navigation Jump to search
Line 5: Line 5:
* [http://www.sparkfun.com/products/8468 LilyPad Vibe Board]
* [http://www.sparkfun.com/products/8468 LilyPad Vibe Board]


[[Image:Vibrationmotor.jpg|300px|thumb|left|Vibration motor + Arduino]]
[[Image:Vibrationmotor.jpg|300px|thumb|right|Vibration motor + Arduino]]


==Exemple de code pour des tests==
==Exemple de code pour des tests==

Revision as of 12:55, 23 June 2011

Les moteurs vibrateurs sont utilisées pour les applications haptiques. Ils peuvent être intégrés à un téléphone, casque, gant, ...

Produits

Vibration motor + Arduino

Exemple de code pour des tests

/*
 Vibration motor test
 
 Reads an analog input pin, maps the result to a range from 0 to MAXVIB
 and uses the result to set the pulsewidth modulation (PWM) of an output pin.
 Also prints the results to the serial monitor.
 
 The circuit:
 * potentiometer connected to analog pin 0.
   Center pin of the potentiometer goes to the analog pin.
   side pins of the potentiometer go to +5V and ground
 * Vibration motor connected from digital pin 3 to ground
 
 Vibration Motor, sku: ROB-08449
 http://www.sparkfun.com/products/8449
 http://www.sparkfun.com/products/8468
 "With a 2-3.6V operating range, these units shake crazily at 3V"
 
 from the example "Analog input, analog output, serial output"
 originally created 29 Dec. 2008, Modified 4 Sep 2010 by Tom Igoe
 
 Modified 23 June 2011 by Didier Donsez 
 
 This example code is in the public domain.
 */

const int MAXVIB=180; // 180 is 3.6V if Vin is 5V (Arduino Uno)

const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 3; // Analog output pin that the vibration motor is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600); 
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);            
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, MAXVIB);  
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);           

  // print the results to the serial monitor:
  Serial.print("sensor = " );                       
  Serial.print(sensorValue);      
  Serial.print("\t output = ");      
  Serial.println(outputValue);   

  // wait 10 milliseconds before the next loop
  // for the analog-to-digital converter to settle
  // after the last reading:
  
  delay(500);   

  analogWrite(analogOutPin, 0); 

  delay(500);  
}