Tyree--den leende, svansen viftar, Sensor mindre 3d tryckta Robot (15 / 31 steg)
Steg 15:
Jag började med en Randofo handledning och används koden av dougstrickland som grund för den här åtgärden. Ett par saker måste noteras. Motoriska strömmen ökar när motorerna börjar vrida och när de möter motstånd (en vägg). Jag mäta strömmen efter motorerna har haft en andra att komma igång--annars, jag ska alltid upptäcka hög ström och få i trubbel. Om du arbetar på mattan, kan "analogRead" värdena behöva vara högre eftersom det krävs mer arbete från motorerna.
Den leende magnetventil och svans viftar styrs av ett relä som drivs av stift 7 på Arduino.
int valm = 0;
int valm1 = 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 (dirA, produktionen);
pinMode (brakeA, produktionen);
pinMode (dirB, produktionen);
pinMode (brakeB, produktionen);
pinMode (relä, utgång);
digitalWrite (dirA, hög); //forward A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 255); //full hastighet A
digitalWrite (dirB, hög);
digitalWrite (brakeB, låg);
analogWrite (pwmB, 255);
digitalWrite (relä, låg);
fördröjning (1000); //get förbi start ström
}
void loop() {
digitalWrite (dirA, hög); //forward A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 255); //full hastighet A
digitalWrite (dirB, hög);
digitalWrite (brakeB, låg);
analogWrite (pwmB, 255);
valm=analogRead(0);
valm1=analogRead(1);
om (valm > 45 eller valm1 > 45) {
digitalWrite (brakeA, hög);
digitalWrite (brakeB, hög);
digitalWrite (dirA, låg); //forward A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 255); //full hastighet A
digitalWrite (dirB, låg);
digitalWrite (brakeB, låg);
analogWrite (pwmB, 255);
Delay(2000);
digitalWrite (brakeA, hög); //stop ett hjul
Delay(1000);
digitalWrite (brakeB, hög), //stop andra hjulet
digitalWrite (relä, hög); //smile och svans på
Delay(2000);
digitalWrite (relä, låg); //turn leende och svans av
Starta båda hjulen fram
digitalWrite (dirA, hög); //forward A
digitalWrite (brakeA, låg), //release broms A
analogWrite (pwmA, 255); //full hastighet A
digitalWrite (dirB, hög);
digitalWrite (brakeB, låg);
analogWrite (pwmB, 255);
fördröjning (1000); //get förbi start ström
}}