Paso 4: código
Después de montar todo el circuito que tienes que hacer es obtener la base conectada a internet, y después de hecho esto es hora de subir el código a la base. Aquí está el código para cargar...
---/ / Publicar y Dashboard con fotorresistores / /---/ / esta aplicación publicará un evento cuando el haz de luz entre el LED y el fotoresistor se rompe. Publicará un evento diferente cuando la luz está intacta otra vez. / / justo como antes, vamos a comenzar por declarar que pins todo es tapado into.int led = D0; Esto es donde está conectado el LED. El otro lado va a un resistor conectado a GND. int boardLed = D7; Este es el LED que está ya en su dispositivo. En el núcleo, es el LED en la esquina superior derecha. En el fotón, tiene = junto a la fotorresistencia de pin.int D7 A0; Esto es donde se enchufa el fotoresistor. El otro lado va al pin "power" (abajo) .int potencia = A5; Este es el otro extremo de la fotorresistencia. El otro lado está conectado a la clavija "fotoresistor" (above).// los siguientes valores de conseguirán establecer cuando el dispositivo botas arriba y calibra: int intactValue; Este es el valor promedio que el fotorresistor Lee cuando la viga está intacta. int brokenValue; Este es el valor promedio que el fotorresistor Lee cuando la viga se rompe. int beamThreshold; Este es un valor entre ledOnValue y ledOffValue, por encima del cual se asume que el led está en y a continuación que se asume que es off.bool beamBroken = false; Esta bandera se utilizará para marcar si tenemos una nueva situación o ahora. Que utilizaremos en el lazo. / / comenzamos con el programa de instalación function.void setup() {/ esta parte sobre todo es la misma: pinMode(led,OUTPUT); / pin de nuestro LED es salida (iluminación del LED) pinMode(boardLed,OUTPUT); / nuestro LED a bordo es como bien pinMode(photoresistor,INPUT); / nuestro pin fotoresistor es pinMode(power,OUTPUT) (leer el fotoresistor) entrada; / la clavija de alimentación el fotoresistor es salida (envío de potencia constante) / / siguiente , escriba el poder de la fotorresistencia al estar el máximo posible, que es 4095 en analógico. digitalWrite(power,HIGH); Puesto que cada uno configura sus leds diferentemente, también vamos a empezar por calibrar nuestra fotorresistencia. Éste va a requerir algunas entradas del usuario. En primer lugar, el LED D7 pasarán a decirle que ponga la mano delante de la viga. digitalWrite(boardLed,HIGH); Delay(2000); Luego, el D7 LED se apagará y el LED se encenderá. digitalWrite(boardLed,LOW); digitalWrite(led,HIGH); Delay(500); Ahora tomaremos algunas lecturas... int on_1 = analogRead(photoresistor); leer fotoresistor delay(200); esperar 200 milisegundos int on_2 = analogRead(photoresistor); leer fotoresistor delay(300); esperar 300 milisegundos / / ahora flash para hacernos saber que te has tomado las lecturas... digitalWrite(boardLed,HIGH); Delay(100); digitalWrite(boardLed,LOW); Delay(100); digitalWrite(boardLed,HIGH); Delay(100); digitalWrite(boardLed,LOW); Delay(100); Ahora el D7 pondrá a decirle que quite la mano... digitalWrite(boardLed,HIGH); Delay(2000); El D7 LED dará vuelta apagado.. digitalWrite(boardLed,LOW); // ... Y vamos a tomar dos lecturas más. int off_1 = analogRead(photoresistor); leer fotoresistor delay(200); esperar 200 milisegundos int off_2 = analogRead(photoresistor); leer fotoresistor delay(1000); esperar 1 segundo / Flash ahora el D7 LED encendido y apagado tres veces para hacernos saber que estamos listos para ir! digitalWrite(boardLed,HIGH); Delay(100); digitalWrite(boardLed,LOW); Delay(100); digitalWrite(boardLed,HIGH); Delay(100); digitalWrite(boardLed,LOW); Delay(100); digitalWrite(boardLed,HIGH); Delay(100); digitalWrite(boardLed,LOW); Ahora que media "en" y "off" valores para obtener una idea de lo que la resistencia será ser cuando el LED está encendido y apagado intactValue = (on_1 + on_2) / 2; brokenValue = (off_1 + off_2) / 2; Vamos a calcular el valor entre ledOn y ledOff, sobre el cual se asume que el led es en y por debajo de la que asumimos el led está apagado. beamThreshold = (intactValue + brokenValue) / 2;} Ahora para el loop() loop.void {/ * en esta función de lazo, vamos a comprobar si la viga se ha rota. Cuando el estado de los cambios de la viga, se entregará un Spark.publish() a la nube para que si queremos, podemos comprobar de otros dispositivos cuando el LED esté encendido o apagado. Te también encendemos el LED D7 cuando el fotorresistor detecta un breakagse de la viga. * / if (analogRead(photoresistor) > beamThreshold) {/ * si usted está por encima del umbral, asumiremos que la viga está intacta. Si la viga estaba intacta antes, sin embargo, no necesitamos cambiar nada. Usaremos la bandera beamBroken que nos ayude a averiguar esto. Esta bandera controla el estado actual de la viga. Después de que la viga se rompe, se establece a TRUE y cuando vuelve a conectar la viga está establecida en FALSE. * / if (beamBroken == true) {/ / si la viga estaba roto antes, entonces esta es una situación nueva. / será enviar una publicación a la nube y encender el LED. / una publicación, enviar a dispositivos... Spark.Publish("beamStatus","Intact",60,Private); Y parpadeará el LED a bordo encendido y apagado. digitalWrite(boardLed,HIGH); Delay(500); digitalWrite(boardLed,LOW); Por último, establece el indicador para reflejar el estado actual de la viga. beamBroken = false; } else {/ / de lo contrario, esto no es un nuevo estado, y no tenemos que hacer nada.}} más {/ / si usted está por debajo del umbral, la viga se rompe probablemente. Si (beamBroken == false) {/ / envía una publicación... Spark.Publish("beamStatus","Broken",60,Private); Y parpadeará el LED a bordo encendido y apagado. digitalWrite(boardLed,HIGH); Delay(500); digitalWrite(boardLed,LOW); Por último, establece el indicador para reflejar el estado actual de la viga. beamBroken = true; {}} else {/ / de lo contrario, esto no es un nuevo estado, y no tenemos que hacer nada.}}}