Created
April 3, 2011 03:08
-
-
Save hugs/900145 to your computer and use it in GitHub Desktop.
"Smoke testing my pot": Reading serial data from a 10K linear sliding potentiometer via Arduino.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| More information on using pots with Arduino: | |
| http://www.arduino.cc/en/Tutorial/Potentiometer |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| Analog input, analog output, serial output | |
| Reads an analog input pin, maps the result to a range from 0 to 255 | |
| 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 | |
| * LED connected from digital pin 9 to ground | |
| created 29 Dec. 2008 | |
| Modified 4 Sep 2010 | |
| by Tom Igoe | |
| This example code is in the public domain. | |
| */ | |
| // These constants won't change. They're used to give names | |
| // to the pins used: | |
| const int analogInPin = A0; // Analog input pin that the potentiometer is attached to | |
| const int analogOutPin = 13; // Analog output pin that the LED 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, 255); | |
| // 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 100 milliseconds before the next loop | |
| // for the analog-to-digital converter to settle | |
| // after the last reading: | |
| delay(100); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // read-from-pot.js | |
| // Jason Huggins (@hugs) | |
| // License: WTFPL ( http://sam.zoy.org/wtfpl/ ) | |
| // Setup: | |
| // Buy an Arduino and install the Arduino IDE | |
| // Upload pot.pde to Arduino | |
| // | |
| // Install node and npm | |
| // $ npm install serialport | |
| // $ node read-from-pot.js | |
| // Example terminal output: | |
| // $ node read-serial.js | |
| // sensor = 0 output = 0 | |
| // sensor = 65 output = 16 | |
| // sensor = 267 output = 66 | |
| // sensor = 464 output = 115 | |
| // sensor = 589 output = 146 | |
| // sensor = 1023 output = 255 | |
| // sensor = 1023 output = 255 | |
| // sensor = 1022 output = 254 | |
| var sys = require('sys'); | |
| var serialport = require("serialport"); | |
| var sp = new serialport.SerialPort("/dev/cu.usbserial-A4001ubI", { | |
| baudrate: 9600, | |
| parser: serialport.parsers.readline('\n') | |
| }); | |
| sp.on("data", function (data) { | |
| sys.puts(data); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment