Question:
Oscillation d'entrée analogique Arduino
Luke
2015-09-24 01:02:07 UTC
view on stackexchange narkive permalink

Je fabrique un simple détecteur infrarouge à l'aide d'une thermopile. J'ai quelques condensateurs supplémentaires que ce que dit ce schéma. J'en suis actuellement un autre, mais c'est l'essentiel.

Schéma et planche à pain- Breadboard and Schematic

Je peux ajouter une image de planche à pain si nécessaire. Je n'ai pas 10 points dans cette pile, je ne peux donc pas en publier plus de 2.

J'utilise une batterie 9V via un régulateur 24v - 5v (il y en avait un autour) pour puissance mon ampli op et schématique. Le signal de l'OPAMP sera compris entre 0 et 5 V, donc la tension n'a pas endommagé l'Arduino Uno. Le projet final sera quelque chose comme: output> A puis power green, A < output < B power yellow, B < output red.

Le problème est que j'obtiens une valeur oscillante de mon Serial Monitor cela va de 0 à 1023 (ou j'ai une conversion pour le ramener à la tension de sortie. Donc 0V à 5V. Voir le code).

Il fait cette oscillation lorsque la carte est connectée à l'un des Broches AX (X = 0-5) ou rien de branché du tout (je comprends que cela produira des nombres étranges avec la broche flottante).

J'avais une photo du moniteur série mais je ne le fais pas Je n'ai pas 10 points pour ajouter plus de 2 photos. S'il vous plaît voir l'image ci-dessous

Je sais que la sortie de l'OPAMP fonctionne parce que lorsque j'utilise un voltmètre pour lire la sortie, cela fonctionne très bien. 0.3XXV quand aucune flamme, 5V quand la flamme est directement au-dessus de mon theromopile. Serial Monitor and VM

Quelqu'un aurait-il une suggestion pour expliquer pourquoi l'Arduino agit de cette façon? La lecture du voltmètre provient directement de la broche 1 de l'ampli Op. pas plus de 2 liaisons. AD822 op amp

Voici mon code avant d'ajouter des instructions if pour les LED. C'était incorrect.

  int TP = A2; // Affecte Thermopile à la broche A2int val; // Déclare readValue Variablefloat Voltage; // Déclarer la variable de tension du monde réel - Float = in between variableint ledG = 11; int ledY = 12; int ledR = 13; void setup () {pinMode (TP, INPUT); // Déclarer la broche Thermopile comme entrée
pinMode (ledG, SORTIE); pinMode (ledR, SORTIE); pinMode (ledY, OUTPUT); Serial.begin (9600); // Démarrez votre port série} void loop () {val = analogRead (TP); // Lire la broche de la thermopile et placer la valeur dans readValue Voltage = (5./1023.)*val; // Pour faire des "calculs en virgule flottante" ont un "." // après le nombre. Sinon, il renverra le nombre réel (5/1023 = 0) selon ArduinoSerial.println (Voltage); // Print readValue to Serial Monitor delay (100); // Sortie retardée à 1/4 de seconde}  
Vous pouvez toujours contourner la limitation des images en les combinant avec un logiciel d'édition de photos ;-)
Pour améliorer la précision du calcul, je ferais voltage = val * 5. / 1023;
Bonne idée de combiner des images ..... Mise à jour de la question.
On ne s'attend pas à ce que la LED de la planche à pain fonctionne.
Avez-vous connecté la masse de votre circuit à la masse Arduino?
Je n'ai pas. Comme il était alimenté par une batterie, je n'étais pas sûr que cela affecterait la carte Arduino. Je vais l'essayer .------- Je viens de connecter un fil de la terre de la carte à la terre Arduino (tout en gardant la terre de la batterie à la carte à pain) et il semble l'avoir réparé. Excellente suggestion!
@Majenko Si vous souhaitez publier cela comme réponse à une question, je vais le sélectionner pour vous.
Un répondre:
Majenko
2015-09-24 17:43:33 UTC
view on stackexchange narkive permalink

Il semble que vous n'ayez pas connecté la masse du circuit à la masse Arduino. Ceci est essentiel pour compléter le circuit entre votre maquette et l'Arduino. Sans la connexion à la terre, les électrons que vous envoyez à l'Arduino n'ont aucun moyen de revenir.

Voici quelques schémas que j'ai dessinés pour une autre question qui traite de l'Arduino pilotant un appareil distant, mais le la théorie est vraie quel que soit son chemin.

enter image description here

Dans ce diagramme, les flèches rouges ( pas l'équipe de démonstration aérienne Je m'empresse d'ajouter ) représente la connexion entre votre circuit de maquette et l'Arduino. Sans la connexion à la terre, il n'y a pas de circuit, et un circuit est toujours nécessaire pour que le courant circule (et donc votre signal). Avec la connexion à la terre, les flèches rouges deviennent une boucle qui permet au courant de circuler et de transférer votre signal.

Parfait! Merci pour la description supplémentaire! Cela m'a permis de mieux comprendre ce qui me manquait.


Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Loading...