Jorden världen roterar med Arduino eller Raspberry Pi kontrollerade Stepper Motor (6 / 6 steg)
Steg 6: Limma föraren på basen
Njut av
Den bifogade uppförandekoden kan läsas på en Arduino att fungera motorn.
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
void setup() {
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
uint64_t timeMultiplier = 24 * 60 * 1; som ger dig ~ ett varv per minut.
uint64_t msPerDay = 24ULL * 3600ULL * 1000ULL;
uint64_t divideForStep = 64ULL * 48ULL * timeMultiplier;
Double nextTimeStep = 0;
void loop() {
statiska osignerade långa zeroTime = millis();
uint64_t curTime = millis() - zeroTime;
om (curTime * divideForStep > nextTimeStep) {
nextTimeStep += msPerDay;
stepper(true);
}
}
inline void stepper (bool normalRotation) {
statisk int steg = 0;
Steg += 8 + (normalRotation?-1: 1);
Steg % = 8.
Switch(Steps) {
fall 0:
digitalWrite (IN1, låg);
bryta;
fall 1:
digitalWrite (IN3, hög);
bryta;
fall 2:
digitalWrite (IN4, låg);
bryta;
fall 3:
digitalWrite (IN2, hög);
bryta;
fall 4:
digitalWrite (IN3, låg);
bryta;
fall 5:
digitalWrite (IN1, hög);
bryta;
fall 6:
digitalWrite (IN2, låg);
bryta;
fall 7:
digitalWrite (IN4, hög);
bryta;
standard:
bryta;
}
}