mirror of
https://github.com/KevinMidboe/Arduino.git
synced 2026-04-25 00:04:09 +00:00
Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.
This commit is contained in:
166
Projects/28BYJ Stepper/first_test/first_test.ino
Normal file
166
Projects/28BYJ Stepper/first_test/first_test.ino
Normal file
@@ -0,0 +1,166 @@
|
||||
// This Arduino example demonstrates bidirectional operation of a
|
||||
// 28BYJ-48, which is readily available on eBay, using a ULN2003
|
||||
// interface board to drive the stepper. The 28BYJ-48 motor is a 4-
|
||||
// phase, 8-beat motor, geared down by a factor of 68. Onint e bipolar
|
||||
// winding is on motor pins 1 & 3 and the other on motor pins 2 & 4.
|
||||
// Refer to the manufacturer's documentation of Changzhou Fulling
|
||||
// Motor Co., Ltd., among others. The step angle is 5.625/64 and the
|
||||
// operating Frequency is 100pps. Current draw is 92mA. In this
|
||||
// example, the speed and direction of the stepper motor is determined
|
||||
// by adjusting a 1k-ohm potentiometer connected to Arduino pin A2.
|
||||
// When the potentiometer is rotated fully counterclockwise, the motor
|
||||
// will rotate at full counterclockwise speed. As the potentiometer is
|
||||
// rotated clockwise, the motor will continue to slow down until is
|
||||
// reaches its minimum speed at the the potentiometer's midpoint value .
|
||||
// Once the potentiometer crosses its midpoint, the motor will reverse
|
||||
// direction. As the potentiometer is rotated further clockwise, the speed
|
||||
// of the motor will increase until it reaches its full clockwise rotation
|
||||
// speed when the potentiometer has been rotated fully clockwise.
|
||||
////////////////////////////////////////////////
|
||||
|
||||
//declare variables for the motor pins
|
||||
int motorPin1 = 8; // Blue - 28BYJ48 pin 1
|
||||
int motorPin2 = 9; // Pink - 28BYJ48 pin 2
|
||||
int motorPin3 = 10; // Yellow - 28BYJ48 pin 3
|
||||
int motorPin4 = 11; // Orange - 28BYJ48 pin 4
|
||||
// Red - 28BYJ48 pin 5 (VCC)
|
||||
|
||||
int motorSpeed = 0; //variable to set stepper speed
|
||||
int potPin = 2; //potentiometer connected to A2
|
||||
int potValue = 0; //variable to read A0 input
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
void setup() {
|
||||
//declare the motor pins as outputs
|
||||
pinMode(motorPin1, OUTPUT);
|
||||
pinMode(motorPin2, OUTPUT);
|
||||
pinMode(motorPin3, OUTPUT);
|
||||
pinMode(motorPin4, OUTPUT);
|
||||
Serial.begin(9600);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
void loop(){
|
||||
|
||||
//potValue = analogRead(potPin); // read the value of the potentiometer
|
||||
Serial.println(potValue); // View full range from 0 - 1024 in Serial Monitor
|
||||
if (potValue < 535){ // if potentiometer reads 0 to 535 do this
|
||||
motorSpeed = (potValue/15 + 5); //scale potValue to be useful for motor
|
||||
clockwise(); //go to the ccw rotation function
|
||||
}
|
||||
else { //value of the potentiometer is 512 - 1024
|
||||
motorSpeed = ((1024-potValue)/15 + 5); //scale potValue for motor speed
|
||||
counterclockwise(); //go the the cw rotation function
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//set pins to ULN2003 high in sequence from 1 to 4
|
||||
//delay "motorSpeed" between each pin setting (to determine speed)
|
||||
|
||||
void counterclockwise (){
|
||||
// 1
|
||||
digitalWrite(motorPin1, HIGH);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin4, LOW);
|
||||
delay(motorSpeed);
|
||||
// 2
|
||||
digitalWrite(motorPin1, HIGH);
|
||||
digitalWrite(motorPin2, HIGH);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin4, LOW);
|
||||
delay (motorSpeed);
|
||||
// 3
|
||||
digitalWrite(motorPin1, LOW);
|
||||
digitalWrite(motorPin2, HIGH);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin4, LOW);
|
||||
delay(motorSpeed);
|
||||
// 4
|
||||
digitalWrite(motorPin1, LOW);
|
||||
digitalWrite(motorPin2, HIGH);
|
||||
digitalWrite(motorPin3, HIGH);
|
||||
digitalWrite(motorPin4, LOW);
|
||||
delay(motorSpeed);
|
||||
// 5
|
||||
digitalWrite(motorPin1, LOW);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin3, HIGH);
|
||||
digitalWrite(motorPin4, LOW);
|
||||
delay(motorSpeed);
|
||||
// 6
|
||||
digitalWrite(motorPin1, LOW);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin3, HIGH);
|
||||
digitalWrite(motorPin4, HIGH);
|
||||
delay (motorSpeed);
|
||||
// 7
|
||||
digitalWrite(motorPin1, LOW);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin4, HIGH);
|
||||
delay(motorSpeed);
|
||||
// 8
|
||||
digitalWrite(motorPin1, HIGH);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin4, HIGH);
|
||||
delay(motorSpeed);
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//set pins to ULN2003 high in sequence from 4 to 1
|
||||
//delay "motorSpeed" between each pin setting (to determine speed)
|
||||
|
||||
void clockwise(){
|
||||
// 1
|
||||
digitalWrite(motorPin4, HIGH);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin1, LOW);
|
||||
delay(motorSpeed);
|
||||
// 2
|
||||
digitalWrite(motorPin4, HIGH);
|
||||
digitalWrite(motorPin3, HIGH);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin1, LOW);
|
||||
delay (motorSpeed);
|
||||
// 3
|
||||
digitalWrite(motorPin4, LOW);
|
||||
digitalWrite(motorPin3, HIGH);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin1, LOW);
|
||||
delay(motorSpeed);
|
||||
// 4
|
||||
digitalWrite(motorPin4, LOW);
|
||||
digitalWrite(motorPin3, HIGH);
|
||||
digitalWrite(motorPin2, HIGH);
|
||||
digitalWrite(motorPin1, LOW);
|
||||
delay(motorSpeed);
|
||||
// 5
|
||||
digitalWrite(motorPin4, LOW);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin2, HIGH);
|
||||
digitalWrite(motorPin1, LOW);
|
||||
delay(motorSpeed);
|
||||
// 6
|
||||
digitalWrite(motorPin4, LOW);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin2, HIGH);
|
||||
digitalWrite(motorPin1, HIGH);
|
||||
delay (motorSpeed);
|
||||
// 7
|
||||
digitalWrite(motorPin4, LOW);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin1, HIGH);
|
||||
delay(motorSpeed);
|
||||
// 8
|
||||
digitalWrite(motorPin4, HIGH);
|
||||
digitalWrite(motorPin3, LOW);
|
||||
digitalWrite(motorPin2, LOW);
|
||||
digitalWrite(motorPin1, HIGH);
|
||||
delay(motorSpeed);
|
||||
}
|
||||
Reference in New Issue
Block a user