From b89bc7df3a1de4452bd5ee1acad3a3129f1a920f Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Sat, 11 Mar 2006 04:35:36 +0000 Subject: got the firmware for the high-speed protocol sketched out, now I need to figure out the div/mod byte format svn path=/trunk/externals/hardware/arduino/; revision=4691 --- examples/Pd_Input/Pd_Input.pde | 57 ++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 13 deletions(-) (limited to 'examples/Pd_Input') diff --git a/examples/Pd_Input/Pd_Input.pde b/examples/Pd_Input/Pd_Input.pde index d5dd5e7..2099ffb 100644 --- a/examples/Pd_Input/Pd_Input.pde +++ b/examples/Pd_Input/Pd_Input.pde @@ -1,15 +1,18 @@ /* Pd_Input * ------------------ * - * This program reads all of the Analog inputs - * and sends the data to the computer as fast as - * possible. It was designed to work with the Pd - * patch of the same name in: - * Help -> Browser -> examples -> hardware + * This program reads all of the Analog and 12 Digital Inputs + * and sends the data to the computer as fast as possible. + * It reads one analog pin and two digital pins per cycle + * so that the time between reads on all pins remains + * constant. + * + * It was designed to work with the Pd patch of the same + * name in: Help -> Browser -> examples -> hardware * * (cleft) 2006 Hans-Christoph Steiner * @author: Hans-Christoph Steiner - * @date: 2006-03-04 + * @date: 2006-03-10 * @location: Polytechnic University, Brooklyn, New York, USA */ @@ -19,15 +22,43 @@ * without a delay() so its very fast. */ -int potPin = 0; +int analogPin = 0; +int digitalPin = 0; +int ledOut = 1; +int analogIn = 0; void setup() { - beginSerial(19200); + beginSerial(9600); } void loop() { - printByte(potPin + 65); // add 65 to get ASCII chars starting with A - printInteger(analogRead(potPin)); - potPin = potPin + 1; - if (potPin > 5) - potPin = 0; + /* + * get two digital ins + */ +/* + printByte(digitalRead(digitalPin)); + digitalPin = digitalPin + 1; + if (digitalPin > 11) + digitalPin = 0; + printByte(digitalRead(digitalPin)); + digitalPin = digitalPin + 1; + if (digitalPin > 11) + digitalPin = 0; +*/ + /* + * get analog in + */ + printByte(65); + analogIn = analogRead(analogPin); + printByte(analogIn / 127); + printByte(analogIn % 127); + analogPin = analogPin + 1; + if (analogPin > 5) + { + analogPin = 0; + // toggle the status LED (pin 13) + digitalWrite(13,ledOut); + ledOut = !ledOut; // alternate the LED + // the newline (ASCII 10) marks the start/end of the sequence + printNewline(); + } } -- cgit v1.2.1