Étape 3: Étape 3: programmation de la puce ATtiny85
J’ai utilisé mon Arduino Uno l’ISP pour programmer la puce minuscule que je ne vais pas aller à travers les étapes pour ce faire, mais voici le site que j’avais l’habitude de le faire.
http://42bots.com/tutorials/How-to-Program-attiny85-with-Arduino-Uno-part-1/
http://42bots.com/tutorials/How-to-Program-attiny85-with-Arduino-Uno-part-2/
Vue d’ensemble du code
Le code est conçu pour qu’une personne peut définir et contrôler les lumières sans déclenchant sur accident. L’utilisateur doit être branchée le capteur, il donnera 5 secondes avant qu’elle commence à tester à distance. Cela donne le temps de l’utilisateur de quitter la salle après avoir réglé il. Un effort similaire a été mis en vérifiant le capteur, naturellement comment elle est programmée, c’est que chaque fois qu’il lit la valeur inférieure à 70cm, ça va aller rouge. Cela signifie que chaque fois que la porte est ouverte la LED rouge devait être activée. Cependant, la façon dont il est programmé l’utilisateur a environ cinq secondes avant elle passe du vert au rouge.
Dans le code il y a une partie pour filtrer les valeurs 0, cela vient d’un problème avec le capteur. Chaque maintenant et puis il vais jeter un 0 au hasard, donc le code filtre toute valeur qui est égale à 0 pour éviter une fausse entrée.
[Edit (25/02/14)]
Les œuvres de capteur à ultrasons en envoyant une impulsion sur le côté envoi, recueillir le signal d’impulsion de l’autre côté qui est essentiellement un microphone et de calculer le temps il faut pour recevoir en microsecondes (qui est 1/1 000 000 de seconde). Il prendra cette fois qui ont été recueillie et diviser par la vitesse du son, mesurée en microsecondes. Cela retourne la distance en centimètres. Le capteur ultrasonique fonctionne mieux lorsqu’il fait perpendiculaire à l’objet qu’il mesure. Cela fonctionnera quand il est à un angle, mais la lecture maximale vient de la lecture perpendiculaire.
Ce programme est constamment envoyer des signaux de ping et la vérification des interruptions dans la distance. De cette façon on a une chance absolue d’attraper quelqu'un entrer dans la salle (sauf si bien sûr ils courent plus vite que la vitesse du son).
Le Code
#include < TinyNewPing.h >
// ---------------------------------------------------------------------------
Code qui a été écrit pour l’Arduino fonction alarme silencieuse
23/02/14
Posté sur instructables
Basé sur l’exemple NewPing
// ---------------------------------------------------------------------------
#define TRIGGER_PIN 2 / / goupille de Arduino lié à déclencher la broche sur le capteur à ultrasons.
#define ECHO_PIN 3 / / goupille de Arduino liée à la broche sur le capteur à ultrasons d’écho.
#define MAX_DISTANCE 200 / / distance maximale que nous voulons faire un ping pour (en centimètres). Distance maximum sensor est évalué à 400-500cm.
int tampon, distance ;
int vert = 0, red = 1 ;
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE) ; NewPing configuration des broches et distance maximale.
void setup() {}
pinMode (verte, sortie) ; Définit les broches comme sorties pour les LEDs
pinMode (rouge, sortie) ;
digitalWrite (vert, HIGH) ; Cette section est de faire le flash lumineux pendant environ 5 secondes
Delay(500) ; Vous donne également une chance de quitter la salle sans déclencher le capteur.
digitalWrite(green,LOW) ;
Delay(500) ;
digitalWrite (vert, HIGH) ;
Delay(500) ;
digitalWrite(green,LOW) ;
Delay(500) ;
digitalWrite (vert, HIGH) ;
Delay(500) ;
digitalWrite(green,LOW) ;
Delay(500) ;
digitalWrite (vert, HIGH) ;
Delay(500) ;
digitalWrite(green,LOW) ;
Delay(500) ;
digitalWrite (vert, HIGH) ;
Delay(500) ;
digitalWrite(green,LOW) ;
Delay(500) ;
digitalWrite(green,HIGH) ; Garde le vert allumée jusqu'à interruption
tampon = 200 ;
}
void loop() {}
Delay(250) ; Attendre 250ms entre les pings. 29ms devrait être le délai le plus court entre les pings.
unsigned int nous = sonar.ping() ; Envoyer des ping, ping temps en microsecondes (nous).
tampon = uS / US_ROUNDTRIP_CM ;
if(buffer!=0) {//Sensor donne des lectures erronées il s’agissait de se débarrasser des valeurs 0
distance = tampon ;
}
d’autre
{}
if(distance<70) //Measuring distance, pour montrer que quelqu'un a été dans la pièce
{
Delay(5000) ; Attend pendant 5 secondes pour vous donner une chance de voir les feux clignotants.
digitalWrite(green,LOW) ;
faire
{
digitalWrite (rouge, haute) ; Montre que quelqu'un a ouvert la porte ou entra dans la chambre
Delay(1000) ;
digitalWrite(red,LOW) ;
Delay(1000) ;
} while(1) ;
}
}