Created
February 23, 2015 00:12
-
-
Save branonbarrett/94d2c976f0613f0a9784 to your computer and use it in GitHub Desktop.
This file contains 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
int tinkerDigitalRead(String pin); | |
int tinkerDigitalWrite(String command); | |
int tinkerAnalogRead(String pin); | |
int tinkerAnalogWrite(String command); | |
// We name pin D0 as led | |
int led = D0; | |
int fsr = A0; | |
//PUT YOUR VARIABLES HERE | |
void setup() | |
{ | |
Spark.function("digitalread", tinkerDigitalRead); | |
Spark.function("digitalwrite", tinkerDigitalWrite); | |
Spark.function("analogread", tinkerAnalogRead); | |
Spark.function("analogwrite", tinkerAnalogWrite); | |
//PUT YOUR SETUP CODE HERE | |
// Initialize D0 pin as output | |
pinMode(led, OUTPUT); | |
pinMode(fsr, INPUT); | |
} | |
void loop() | |
{ | |
int reading = 0; | |
// Keep reading the sensor value so when we make an API | |
// call to read its value, we have the latest one | |
reading = analogRead(A0); | |
// Use map function to map between the fsr read and the led analogWrite value | |
// http://arduino.cc/en/Reference/Map | |
reading = map(reading, 0, 4094, -255, 0); | |
reading = reading * -1; | |
// To avoid blinking set values below 5 to 0 | |
if (reading < 5) | |
reading = 0; | |
analogWrite(led, reading); | |
} | |
int tinkerDigitalRead(String pin) { | |
int pinNumber = pin.charAt(1) - '0'; | |
if (pinNumber< 0 || pinNumber >7) return -1; | |
if(pin.startsWith("D")) { | |
pinMode(pinNumber, INPUT_PULLDOWN); | |
return digitalRead(pinNumber);} | |
else if (pin.startsWith("A")){ | |
pinMode(pinNumber+10, INPUT_PULLDOWN); | |
return digitalRead(pinNumber+10);} | |
return -2;} | |
int tinkerDigitalWrite(String command){ | |
bool value = 0; | |
int pinNumber = command.charAt(1) - '0'; | |
if (pinNumber< 0 || pinNumber >7) return -1; | |
if(command.substring(3,7) == "HIGH") value = 1; | |
else if(command.substring(3,6) == "LOW") value = 0; | |
else return -2; | |
if(command.startsWith("D")){ | |
pinMode(pinNumber, OUTPUT); | |
digitalWrite(pinNumber, value); | |
return 1;} | |
else if(command.startsWith("A")){ | |
pinMode(pinNumber+10, OUTPUT); | |
digitalWrite(pinNumber+10, value); | |
return 1;} | |
else return -3;} | |
int tinkerAnalogRead(String pin){ | |
int pinNumber = pin.charAt(1) - '0'; | |
if (pinNumber< 0 || pinNumber >7) return -1; | |
if(pin.startsWith("D")){ | |
pinMode(pinNumber, INPUT); | |
return analogRead(pinNumber);} | |
else if (pin.startsWith("A")){ | |
pinMode(pinNumber+10, INPUT); | |
return analogRead(pinNumber+10);} | |
return -2;} | |
int tinkerAnalogWrite(String command){ | |
int pinNumber = command.charAt(1) - '0'; | |
if (pinNumber< 0 || pinNumber >7) return -1; | |
String value = command.substring(3); | |
if(command.startsWith("D")){ | |
pinMode(pinNumber, OUTPUT); | |
analogWrite(pinNumber, value.toInt()); | |
return 1;} | |
else if(command.startsWith("A")){ | |
pinMode(pinNumber+10, OUTPUT); | |
analogWrite(pinNumber+10, value.toInt()); | |
return 1;} | |
else return -2;} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment