Autonoma / röst kontrollerat - 3D Scanning rigg för 3D utskrift (28 / 31 steg)
Steg 28: Arduino källkoden
#include
CONST byte PWMA = 9; PWM kontroll (hastighet) för motor A
CONST byte DIRA = 8. Riktning-kontroll för motor A
#define TRIGGER_PIN 12 / / Arduino PIN-kod knuten till utlösa pin på ultrasonic sensor.
#define ECHO_PIN 11 / / Arduino PIN-kod knuten till echo pin på ultrasonic sensor.
#define MAX_DISTANCE 200 / / maximalt avstånd vi vill skicka ping (i centimeter). Maximal sensorn avståndet är dimensionerade för 400-500cm.
flyta nextspeed = 0;
int data = 0;
int msg_lenght = 0;
NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
char userInput [4] = {'s ', '0',' 0', "\r"};
void setup() {
Serial.BEGIN(9600);
pinMode (PWMA, OUTPUT);
pinMode (DIRA, OUTPUT);
}
void loop() {
/*
Delay(100);
int distcm=sonar.ping_cm();
Serial.Print ("Ping:");
Serial.Print(distcm);
Serial.println("cm");
om ((distcm < = 35) & & (distcm) > = 1) {
Delay(1000);
digitalWrite (DIRA, 0);
analogWrite (PWMA, 200);
Delay(100); Motoriska A kommer att hålla lastbilstransporter i 1 sekund
}
annat {
digitalWrite (DIRA, 0);
analogWrite (PWMA, 0);
Delay(100); Motoriska A kommer att hålla lastbilstransporter i 1 sekund
}
*/
om (data == 0) {
readuserdata();
}
om (data == 1) {
nextspeed = (char (userInput [1] - 48) * 10 + char (userInput [2] - 48));
nextspeed = nextspeed * 25;
setspeed(nextspeed);
Serial.Print(nextspeed);
Serial.Print("");
data = 0;
för (int jag = 0; jag < = 6; i ++)
userInput [i] = 0;
}
}
void setspeed (int nextspeedx) {
analogWrite (PWMA, nextspeedx);
}
void readuserdata() {
char tmp;
IF(Serial.available()) {
msg_lenght = Serial.available();
om (msg_lenght == 3) {
Serial.Print ("meddelandet längd =");
Serial.Print(msg_lenght);
tmp = Serial.read();
om (tmp == 's ") {
userInput [0] = tmp;
för (int jag = 1; jag < = msg_lenght; i ++) {
tmp=Serial.Read();
userInput [i] = char(tmp);
}
data = 1;
}
}
}
}