El siguiente paso fue mirar más detenidamente lo que significa en computación un bit o un byte, las diferencias entre análogo y digital.
Nos acercamos a programar con Arduino usando los puertos análogos con una fotocelda y un potenciómetro (http://wiring.org.co/learning/basics/photoresistor.html & http://arduino.cc/en/Tutorial/AnalogReadSerial )
int sensor = 0;
void setup (){
Serial.begin(9600);
}
void loop (){
//Serial.println(sensor); // imprimir resultados
delay(1000); // pausa entre variable y variable/
sensor = analogRead (0); // lee el sensor sgun el pin de entrada
if (sensor >= 512) {
Serial.println("esta oscuro");
}
else {
Serial.println("esta claro");
}
}
Para luego pasar a un programa que nos permite distribuir los valores análogos de la fotocelda a un speaker que genera notas músicales con los cambios de luz en el ambiente.
const int soundPin = 9;
int sensor = 0;
void setup (){
Serial.begin(9600);
pinMode(soundPin, OUTPUT);
}
void loop (){
sensor = analogRead (0); // lee el sensor sgun el pin de entrada
if (sensor >= 0&&sensor<=128) {
play(1);
}
else if (sensor >= 129&&sensor<=256){
play(2);
}
else if (sensor >= 257&&sensor<=384){
play(3);
}
else if (sensor >= 385&&sensor<=512){
play(4);
}
else if (sensor >= 513&&sensor<=640){
play(5);
}
else if (sensor >= 641&&sensor<=768){
play(6);
}
else if (sensor >= 769&&sensor<=896){
play(7);
}
else if (sensor >= 897&&sensor<=1023){
play(8);
}
}
void play (int val){
switch (val){
case 1:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1915);
digitalWrite(soundPin, LOW);
delayMicroseconds(1915);
case 2:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1700);
digitalWrite(soundPin, LOW);
delayMicroseconds(1700);
case 3:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1519);
digitalWrite(soundPin, LOW);
delayMicroseconds(1519);
case 4:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1432);
digitalWrite(soundPin, LOW);
delayMicroseconds(1432);
case 5:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1275);
digitalWrite(soundPin, LOW);
delayMicroseconds(1275);
case 6:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1136);
digitalWrite(soundPin, LOW);
delayMicroseconds(1136);
case 7:
digitalWrite(soundPin, HIGH);
delayMicroseconds(1014);
digitalWrite(soundPin, LOW);
delayMicroseconds(1014);
case 8:
digitalWrite(soundPin, HIGH);
delayMicroseconds(956);
digitalWrite(soundPin, LOW);
delayMicroseconds(956);
}
Serial.println(val);
}

No comments:
Post a Comment