/*
Reads from an analog input, calculatin a distance in mm
and returning in to the computer.
The circuit:
* Analog sensor with a potentiometer attached to analog input 0
Created 21/06/2011
By Javier Cavallo
*/
/*Variable declarations*/
int baudRate = 9600;
int zero = 474; //Diference from reading input when milimiter is at 0 position.
float ratio = 1;
float distance = 0;
int analogInputPin = 8;
int digitalInputPin = 9;
//int analogOutPutPin = 1;
int timeSleep = 10;
int inByte;
int buttonValue;
/*Input ASCII values*/
int request = 82;
// initialize serial communication with computer:
void setup()
{
//Set INPUT Pins
pinMode(analogInputPin, INPUT);
pinMode(digitalInputPin, INPUT);
Serial.begin(baudRate);
}
void calculateDistance(int inputValue)
{
//Transform the distance into mm.
float result = inputValue / ratio;
distance = result * 10 / 68;
}
void readDistance()
{
//Read distance from potentiometer
int inputValue = (analogRead(analogInputPin)) – zero;
calculateDistance(inputValue);
//Return the distance to the Computer.
if (CONTROL_LINE) CDC.print(«%f\n»,distance);
//Serial.printf(«%f\n», distance);
CONTROL_LINE=1;
}
void loop()
{
if(Serial.available())
{
buttonValue = digitalRead(digitalInputPin);
inByte = Serial.read(); //Read Request
if((buttonValue == LOW) || (inByte == request))
{
readDistance();
}
delay(timeSleep);
}
}
Comparte el código y me fijo si puedo ayudarte… que seguro es tema de CDC.PRINT seguro no concuerda el tipo de impresión con el tipo de variable.
saludos.
]]>no te preocupes… intentaré mirar el código, pero por lo menos intenta leer la config, y probar con proyectos fáciles primero, no intentes algo tan complicado si no sabes nada de pinguino. Tienes muchos ejemplos en el GUI, intenta con esos… yo trabajo de esto y lo que me pides se suele cobrar.
]]>Muchas Gracias.
Saludos.