Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Dans cette leçon, nous utiliserons un servomoteur, une photorésistance et une résistance pull-down pour assembler un système de source lumineuse à suivi automatique.
Étape 1: Composants:
-Carte Arduino Uno * 1
- Câble USB * 1
- Servomoteur * 1
- photorésistance * 1
- Résistance (10k) * 1
- Planche à pain * 1
- Cavaliers
Étape 2: Principe
Le servomoteur et la photorésistance scannent et recherchent la source lumineuse à 180 degrés et enregistrent l'emplacement de la source lumineuse. Une fois le balayage terminé, le servomoteur et la photorésistance s'arrêtent dans la direction de la source lumineuse.
Étape 3: Procédures:
Étape 1:
Construisez le circuit.
Étape 2:
Téléchargez le code sur
Étape 3:
Téléchargez le croquis sur la carte Arduino Uno
Cliquez sur l'icône Télécharger pour télécharger le code sur le tableau de commande.
Si « Téléchargement terminé » apparaît en bas de la fenêtre, cela signifie que le croquis a été téléchargé avec succès.
Maintenant, si vous utilisez une lampe de poche pour éclairer la photorésistance, vous verrez le servomoteur et la photorésistance tourner, et enfin s'arrêter dans la direction de la source lumineuse.
Étape 4: Diagramme schématique
Étape 5: Coder
/********************************************************************
* Nom:
Suivi automatique de la source lumineuse
* fonction
: si vous utilisez une lampe de poche pour faire briller la photorésistance, * tu verras
le servomoteur et la photorésistance tournent, * et enfin
arrêtez-vous dans la direction de la source lumineuse.
***********************************************************************
/Email: [email protected]
//Site Web: www.primerobotics.in
#comprendre
const int photocellPin = A0;
/************************************************/
Servo myservo;//créer un objet servo pour contrôler un servo
int outputValue = 0;
angle int = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180};
int maxVal = 0;
int maxPos = 0;
/*************************************************/
void setup()
{
Serial.begin(9600);
myservo.attach(9);//attache le servo sur la broche 9 à l'objet servo
}
/*************************************************/
boucle vide()
{
for(int i = 0;
i < 19; je ++)
{
myservo.write(angle);//écrit l'angle au servo
valeur de sortie
= analogRead(photocellPin);//lire la valeur de A0
Serial.println(outputValue); // l'imprimer
if(outputValue > maxVal)//si la valeur actuelle de A0 est supérieure à la précédente
{
maxVal = outputValue; // notez la valeur
position max
=i;//
}
retard (200);
}
myservo.write(angle[maxPos]);//écrit l'angle au servo dont A0 a la plus grande valeur
tandis que(1);
}