Étape 7: Étape finale : les mathématiques et les Conclusions !
Ce projet a été amusant et relativement simple à faire. Toutefois, il est un élément de nouveauté. Je ne dirais jamais à quelqu'un qu’il serait une bonne idée pour saturer le capteur. Il n’est pas sain pour obtenir cet ivrogne. Vous ne voulez pas finir comme le gars dans l’urinoir =)
À l’avenir, je pense que je pourrais faire un alcootest qui a un 0,00-0,13 détection du taux d’alcoolémie. J’ai un alcootest réel ici pour faire des comparaisons.
Si quelqu'un d'entre vous avez des questions, je suis heureux de vous aider. J’espère que vous avez aimé cette instructable et peut-être eu un éclat de rire !
VISITEZ MA CHAÎNE YOUTUBE ICI :
http://www.youtube.com/user/patrickikis
VISITEZ MA BOUTIQUE EBAY ICI :
http://stores.eBay.com/hobbytronixstore
LES MATHS :
Il est vraiment pas trop mathématiques impliqués. L’ADC interne du pic est à l’aide de 5V et la masse comme références. Étant donné que nous avons mis en place notre programme pour les données 10-bit ADC et ignorer les bits les moins significatifs, nous utilisons un registre 8 bits. Un registre de 8 bits peut contenir des nombres binaires qui sont relatives à des valeurs décimales. Par exemple :
1111 1111 = 255 décimal = FF HEX
0000 0000 = 0 décimale = HEX 00
Puisque nous utilisons 5V comme référence, laisse pause qu'il vers le bas par rapport à ce que chaque bit vaut en tension. Voici un moyen facile de le comprendre.
Chaque bit vaut :
5V(Ref) / 255 = 0.0197V, ou *** 19.6mv* **
Alors 0000 0001 = 19.6mv = 01 HEX (Notez que si vous êtes paresseux, vous pouvez trouver un nombre décimal au calcul de l’hexagone en cherchant sur google.
Depuis la sortie du capteur est "Stable" dans ma configuration lorsque la sortie est 700mV ou moins. Étant donné que nous devons faire une comparaison dans le logiciel, nous avons donc de comprendre ce qui est la valeur hexadécimale de 700mV.
Voici comment nous trouver :
Puisque nous savons qu’un bit est égal à 19.6mv (0.0196), tout ce que nous avons à faire est diviser 700mv, mais ce peu de poids, et vous avez votre réponse ! 700mV (0,7) divisé par 19.6mv (0.0196)
700mV = environ 36 bits.
Jusqu'à 36 décimale est égale à 24 hexagonale. (0010 0100)
Au programme, une fois que nous disons à l’appareil à prélever un échantillon, il effectue une séquence d’étalonnage :
1) CHARGE W-REGISTER AVEC 24H
2) COMPARER AVEC LA VALEUR DE L’ADC
3) est plus grande que ADC valeur de W-Registre valeur (valeur de l’ADC est inférieure à 700mV) ?
4) SI OUI, ALLER DE L’AVANT AVEC LE PROGRAMME
4) SINON, GOÛTER À NOUVEAU ET RÉPÉTER LE PROCESSUS JUSQU'À MQ3 SORTIE EST STABLE
Depuis le haut de gamme de la gamme de tension de la MQ3 dans cette configuration est à peu près 3.5VDC, et la tension stable est 700mV ou sous Windows, le PIC est programmé pour prendre des valeurs différentes entre les deux et faire des comparaisons jusqu'à ce qu’elle détermine quel niveau d’ivresse vous courent. La sous-routine suivante continue de se déplacer des valeurs la la Registre W et la compare à la valeur de l’ADC a été échantillonnés après qu’un utilisateur a soufflé dans le capteur. Dans un premier temps, si la valeur du Registre ADC (GEN5) est inférieure à la valeur de WREG, puis il choisira LED #1 (vous n’êtes pas ivre). Si la valeur dans le registre de l’ADC est supérieure à la valeur en WREG, vous passez à la prochaine comparaison (pour LED2). Pour la deuxième comparaison, nous chargeons un nouveau numéro dans WREG qui équivaut à une comparaison de tension plus élevée. Si le registre de l’ADC est plus grand que contenu de WREG, passez à l’étape suivante (DEL3 comparaison), sinon, appelez la routine qui allume la LED #2.
DÉTERMINER :
MOVLW 0 X 24 ; Entamons WREG valeur de référence
CPFSGT GEN5 ; si la valeur de l’ADC est supérieure à WREG, la prochaine instruction de saut, si non, vous avez ; trouvé votre taux d’alcoolémie !
APPELEZ la LED1 ; sinon, allume la LED #1 (pas d’alcool niveau détecté).
MOVLW 0X3B ; Entamons WREG valeur de référence
CPFSGT GEN5 ; si ADC valeur est supérieure à WREG, la prochaine instruction de saut, sinon, vous avez trouvé votre taux d’alcoolémie !
Appelez LED2 ; sinon, allume la LED #2 (une bière ou deux).
MOVLW 0 X 52 ; Entamons WREG valeur de référence
CPFSGT GEN5 ; si la valeur de l’ADC est supérieure à WREG, la prochaine instruction de saut, si non, vous avez ; trouvé votre taux d’alcoolémie !
Appelez DEL3 ; sinon, allume la LED #3 (deux ou trois au cours de la dernière heure - à peu près. Susceptibles ; ne devrait pas conduire).
MOVLW 0X69 ; Entamons WREG valeur de référence
CPFSGT GEN5 ; si la valeur de l’ADC est supérieure à WREG, la prochaine instruction de saut, si non, vous avez ; trouvé votre taux d’alcoolémie !
APPEL LED4 ; Entamons WREG valeur de référence
CPFSGT GEN5 ; si la valeur de l’ADC est supérieure à WREG, la prochaine instruction de saut, si non, vous avez f; ound votre taux d’alcoolémie !
Appelez DEL5 ; sinon, allume la LED #5 (état d’ébriété. Ne pas conduire, ou frapper sur les gens que vous connaissez, que vous ne devriez pas!!!).
MOVLW 0X95 ; Entamons WREG valeur de référence
CPFSGT GEN5 ; si la valeur de l’ADC est supérieure à WREG, la prochaine instruction de saut, si non, vous avez trouvé, votre taux d’alcoolémie !
APPEL DEL5
APPEL LED6
RETOUR