Paso 3: Ejecuta el bosquejo Teensy y enviar datos en serie
Una vez que esté funcionando con el Teensy por referencia: http://www.pjrc.com/teensy/td_download.html y ejecutar algunos programas de ejemplo, estará preparado para instalar y ejecutar el sketch de ejemplo adjunto proporcionado.
<p>//calibration<br>int avg_reading1,avg_reading2,avg_reading3,avg_reading4,avg_reading5; int count_cal_readings = 0; long total1, total2, total3, total4, total5; int cap_read1, cap_read2, cap_read3, cap_read4, cap_read5; boolean done_cal = false; //use int touch_threshold; //debug boolean debug; int tval1,tval2,tval3,tval4,tval5; int t_val1,t_val2,t_val3,t_val4,t_val5;</p><p>void setup(){ debug = false; Serial.begin(9600); done_cal=false; touch_threshold = 0; if(debug==true){ Serial.println("STARTING..."); delay(1000); }</p><p>}</p><p>void loop(){ cap_read1 = touchRead(A1); cap_read2 = touchRead(A2); cap_read3 = touchRead(A3); cap_read4 = touchRead(A4); cap_read5 = touchRead(A5); if(done_cal==true){ //RUNNING delay(10); t_val1 = abs( cap_read1 - avg_reading1 ); //delay(1); t_val2 = abs( cap_read2 - avg_reading2 ); //delay(1); t_val3 = abs( cap_read3 - avg_reading3 ); //delay(1); t_val4 = abs( cap_read4 - avg_reading4 ); //delay(1); t_val5 = abs( cap_read5 - avg_reading5 ); // if(t_val1 > touch_threshold){ if(debug==true){ //Serial.print("Raw touchRead data [ "); Serial.print(cap_read1); Serial.print(" "); Serial.print(cap_read2); Serial.print(" "); Serial.print(cap_read3); Serial.print(" "); Serial.print(cap_read4); Serial.print(" "); Serial.print(cap_read5); Serial.println(); // Serial.print(" ]\n"); // Serial.print("Touch calibrated value ["); // Serial.print(t_val1); Serial.print("\t"); Serial.print(t_val2); // Serial.print("]\n"); }else{ int tval1 = map(t_val1, 1, 65536, 200, 1200); int tval2 = map(t_val2, 1, 65536, 200, 1200); int tval3 = map(t_val3, 1, 65536, 200, 1200); int tval4 = map(t_val4, 1, 65536, 200, 1200); int tval5 = map(t_val5, 1, 65536, 200, 1200); Serial.print(tval1); Serial.print(" "); Serial.print(tval2); Serial.print(" "); Serial.print(tval3); Serial.print(" "); Serial.print(tval4); Serial.print(" "); Serial.print(tval5); Serial.println(); } }else{ //CALIBRATION</p><p> if(millis()<5000 && done_cal==false){ //first five seconds, calibrate total1 += cap_read1; total2 += cap_read2; total3 += cap_read3; total4 += cap_read4; total5 += cap_read5; count_cal_readings++; if(debug==true){ Serial.print(cap_read1);Serial.print(" "); Serial.print(cap_read2);Serial.print(" "); Serial.print(cap_read3);Serial.print(" "); Serial.print(cap_read4);Serial.print(" "); Serial.print(cap_read5); Serial.println(); } }else{ avg_reading1 = int(total1/count_cal_readings); avg_reading2 = int(total2/count_cal_readings); avg_reading3 = int(total3/count_cal_readings); avg_reading4 = int(total4/count_cal_readings); avg_reading5 = int(total5/count_cal_readings); done_cal = true; if(debug==true){ Serial.println("~~"); Serial.println("AVG"); Serial.print(avg_reading1 + " "); Serial.print(avg_reading2 + " "); Serial.print(avg_reading3 + " "); Serial.print(avg_reading4 + " "); Serial.println(avg_reading5); Serial.println("~~"); delay(1000); } } } delay(25);</p><p>}</p>
Observe que este código de bosquejo tiene una fase de calibración breve que pasa a través de la inicialización de cada nueva gestión. Para obtener las lecturas más exactas, su ' siempre una buena idea para tener las manos fuera el Teensy y cables y no tiene los cables de contacto con tierra o metal cuando lo enchufe por primera vez. Puede ver la fase de calibración en la consola Arduino si establece el indicador del DEBUG 'true' en el bosquejo.
Una vez efectuada la calibración, podrá entonces ver ambiente los valores numéricos en scroll en el monitor. Los valores reales touchRead de Teensy son 16 bits de tamaño y van desde 1-65536, pero yo he asignado los valores de salida hacia abajo en una más estrecho (menos molesto) gama de frecuencia audible de 200-1200 en el bosquejo .ino.