Rör inte paketet (27 / 28 steg)
Steg 27:
analogRead(2) värden bestämmer trigger-punkt för fotocellen.
analogRead(0) och analogRead(1) värden bestämmer den nuvarande som kommer att orsaka Arduino att tänka paketet har drabbat ett hinder. Om du kör på mattan, kan värdena behöva vara högre. Om du kör motorerna snabbare, kan värdet behöva vara högre.
Observera att "startup nuvarande" på motorer är större än den "springa" nuvarande--det är därför det finns en fördröjning på framåt innan kontrollera aktuella värden.
int valm = 0;
int valm1 = 0;
int trigger = 0;
int triggerlock = 0;
CONST int pwmA = 3;
CONST int pwmB = 11;
CONST int brakeA = 9;
CONST int brakeB = 8;
CONST int dirA = 12.
CONST int dirB = 13.
CONST int relä = 7.
void setup() {
pinMode (relä, utgång);
digitalWrite (relä, hög);
fördröjning (500); //leave relä på.5 andra--gör "eek" ljud
digitalWrite (relä, låg);
}
void loop() {
trigger=analogRead(2);
om (utlösa < 900 eller triggerlock > 0) {//light skiner på sensorn nu eller tidigare
triggerlock = 10; //don't kontrollera ljuset igen
pinMode (dirA, produktionen);
pinMode (brakeA, produktionen);
pinMode (dirB, produktionen);
pinMode (brakeB, produktionen);
digitalWrite (dirA, hög); //forward A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 150); //set hastighet A
digitalWrite (dirB, hög); //forward B motor
digitalWrite (brakeB, låg);
analogWrite (pwmB, 150); //set hastighet B
valm=analogRead(0);
valm1=analogRead(1);
om (valm > 520 eller valm1 > 520) {
digitalWrite (relä, hög), //turn på "eek" ljud
Delay(100);
digitalWrite (relä, låg);
digitalWrite (brakeA, hög), //stop motor A
digitalWrite (brakeB, hög), //stop Motor B
digitalWrite (dirA, låg); //reverse A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 150); //set hastighet A
digitalWrite (dirB, låg); //reverse B
digitalWrite (brakeB, låg);
analogWrite (pwmB, 150); //set hastighet B
Delay(300);
digitalWrite (brakeA, hög); //stop ett hjul
Delay(400);
digitalWrite (brakeB, hög), //stop andra hjulet
Starta båda hjulen fram
digitalWrite (dirA, hög); //forward A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 150); //set hastighet A
digitalWrite (dirB, hög); //forward B
digitalWrite (brakeB, låg);
analogWrite (pwmB, 150); //set hastighet B
fördröjning (700); //get förbi start ström
}}}