2012-12-06 3 views
1

J'ai une source d'alimentation externe (6v) qui est connectée à un moteur et un servo, et sur ma carte Arduino j'ai quelques LED qui sont alimentés par le 5v embarqué. L'alimentation externe est connectée à un commutateur afin que je puisse allumer le moteur et le servo (pour économiser la batterie). Mon tableau principal clignote juste les différentes LED. Ce que je veux arriver, c'est que le moment où mon alimentation externe est allumée, les LED cessent de clignoter et le code pour déplacer le servo et le moteur est exécuté. En conséquence, j'ai un booléen appelé intro. Quand c'est vrai, le code LED s'exécute, quand il est faux le moteur et le code servo s'exécuteront. Le seul problème que j'ai est que comment l'Arduino peut-il savoir si l'alimentation externe est allumée pour que le booléen puisse être réglé sur faux? Y at-il un moyen que l'Arduino peut détecter si l'alimentation externe est activée (par exemple en vérifiant les broches du moteur/servo?)?Arduino - Détection de l'alimentation externe

Répondre

4

L'idée générale est de connecter l'alimentation externe à une broche d'E/S afin que vous puissiez lire son état. Vous aurez également besoin d'un pull-down sur la broche I/O afin qu'il ne flotte pas et donner des valeurs aléatoires lorsque l'alimentation n'est pas connectée.

Ne connectez pas directement le 6V à une broche d'E/S Arduino, elle sera suffisamment éloignée de Vcc pour que les diodes de la broche s'activent. Une résistance de série comme 10K pour réduire le courant de serrage sera probablement OK, mais n'est toujours pas la meilleure pratique de conception. Je recommande une pince de diode Zener 3V3 comme celle sur cette page:

http://www.kevinmfodor.com/home/My-Blog/microcontrollerinputprotectiontechniques

0

Vérifiez la tension d'entrée maximale sur les broches E/S, mais vous devez pouvoir connecter l'alimentation externe à une broche et déclencher une interruption. L'interruption peut alors être utilisée pour décider si l'alimentation est activée (front montant) ou désactivée (front descendant).