Étape 8: Montage de circuits mobiles
Connectez le 3.3V broches de l’arduino sur la broche de la DMV de le XBee, la broche RX de l’arduino le la goupille du VIN de le XBee et une broche de terre de l’arduino sur la broche de terre de le XBEE. Nous avons constaté que nous avions besoin alimenter les deux moteurs séparément de l’arduino, parce que l’arduino pouvait source pas assez de courant pour alimenter l’arduinos ainsi que tous les autres composants. Connecter les fils d’alimentation des servos les uns aux autres et au fil de la batterie AAA. Connectez les fils de masse des servos les uns aux autres et au fil de masse de la batterie AAA. Souder les fils de masse de la LED, la blacklights et les servos tous ensemble, laissant une extrémité libre à brancher sur une broche de terre. Connectez tous les composants aux broches requis--nous avons utilisé les broches 12 et 11 pour blacklights, 10 et 9 pour les servos et 8, 7 et 6 pour LEDs.
Enfin, alimenter l’arduino lui-même. Nous avons utilisé deux packs d’accus de deux AAs chacune connectée en série pour nous donner un 6V entrée ; vous pouvez également, comme indiqué précédemment, alimenter arduinos hors 4.5V ; Nous avons utilisé tout ce que nous avions disponibles. Connectez le câble d’alimentation sur la broche de VIN et le fil de masse à une broche GND. Soit dit en passant, nous avons constaté que mène sur les batteries des lampes à souder fonctionnait bien--nous avons utilisé l’un d'entre eux pour alimenter les servos.
Maintenant tout ce que vous devez faire est de programmer l’arduino. Nous avons utilisé le code sur l’arduino mobile pour contrôler les différentes composantes ci-dessous.
#include < Servo.h >
int serial_val = 0 ;
motors_on booléen = false ;
Compteurs pour les LEDs + clignotants
int x1 = 0 ;
int x2 = 0 ;
int x3 = 0 ;
Broches d’échantillon pour arduino monté sur mobile
public static int ledPin1 = 6 ;
public static int ledPin2 = 7 ;
public static int ledPin3 = 8 ;
public static int motorPin1 = 9 ;
public static int motorPin2 = 10 ;
public static int flashlightPin1 = 11 ;
public static int flashlightPin2 = 12 ;
Servo-information
Servo motor1 ;
Servo motor2 ;
pos1 int = 0 ; position de motor1
pos2 int = 0 ; position de motor2
void setup() {}
Code d’installation s’exécute une fois au début
Serial.Begin(9600) ; Commence la série monitor
Dire l’arduino qui pins seront utilisés pour la sortie ; aucuns broches ne seront utilisés pour se prononcer sur le mobile
pinMode (motorPin1, sortie) ;
pinMode (motorPin2, sortie) ;
pinMode (flashlightPin1, sortie) ;
pinMode (flashlightPin2, sortie) ;
pinMode (ledPin1, sortie) ;
pinMode (ledPin2, sortie) ;
pinMode (ledPin3, sortie) ;
PIN 13 est intégré LED, habituellement utilisé pour signifier que le programme a été écrit correctement
pinMode (13, sortie) ;
digitalWrite (13, HIGH) ;
}
void loop() {}
Code principal, qui se déroule à plusieurs reprises
lire la valeur de (radio), soustraire 48 pour le miracle de l’ASCII en int
if(Serial.available())
serial_val = Serial.read ()-48 ;
Vérifiez que la valeur lue est raisonnable
Serial.println(serial_val) ;
if(serial_val > 0)
{
digitalWrite (13, HIGH) ;
}
d’autre
{
digitalWrite (13, faible) ;
}
Compteurs de l’incrément
x1 = x1 + 1 ;
x2 = x2 + 1 ;
x3 = x3 + 1 ;
Vérifiez les valeurs des compteurs ; nombres premiers aléatoires ont été choisis comme seuils donc les cycles ne s’alignent pas
Si (x1 > 20483) {}
x1 = 0 ;
} else {}
Si (x1 < 1000) {}
digitalWrite (ledPin1, HIGH) ; S’allume pendant 1 seconde toutes les secondes 20,483
} else {}
digitalWrite (ledPin1, basse) ; Couper le reste du temps
}
}
Si (x2 > 29303) {}
x2 = 0 ;
} else {}
Si (x2 < 1200) {}
digitalWrite (ledPin2, HIGH) ; Allumez pour 1,2 secondes toutes les secondes 29,303
} else {}
digitalWrite (ledPin2, basse) ; Couper le reste du temps
}
}
Si (x3 > 18397) {}
x3 = 0 ;
} else {}
Si (x3 < 900) {}
digitalWrite (ledPin3, HIGH) ; Allumez pour 0,9 secondes toutes les secondes 18,397
} else {}
digitalWrite (ledPin3, basse) ; Couper le reste du temps
}
}
Retarder un peu le programme peut répondre
Delay(1) ;
pour activer le blacklights marche / arrêt :
Si (serial_val == 1 || serial_val == 3)
{
digitalWrite (flashlightPin1, HIGH) ;
digitalWrite (flashlightPin2, HIGH) ;
}
d’autre
{
digitalWrite (flashlightPin1, basse) ;
digitalWrite (flashlightPin2, basse) ;
}
Activer ou désactiver les moteurs
Ce code en fait les transforme sur et en dehors de brèves poussées par y attacher et détacher les moteurs
parce que dans le cas contraire, ils ont couru à une vitesse trop élevée et les morceaux de frapper l’autre
Si (serial_val == 2 || serial_val == 3)
{
if(motors_on)
{
motors_on = false ;
motor1.Detach() ;
motor2.Detach() ;
}
d’autre
{
motors_on = true ;
motor1.Attach(motorPin1) ; Fixer motor1 à goupille appropriée
motor2.Attach(motorPin2) ; Fixer motor2 à goupille appropriée
motor1.Write(0) ;
motor2.Write(0) ;
Delay(300) ;
}
}
d’autre
{
if(motors_on)
{
motors_on = false ;
motor1.Detach() ;
motor2.Detach() ;
}
}
}