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:
2019-05-30 23:41:53 +02:00
parent 2d047634f2
commit 6c84b31f2c
1480 changed files with 198581 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
int leftCCW[] = {8, 9, 10, 11};
int leftCW[] = {11, 10, 9, 8};
int leftButtons[] = {2, 3};
int rightCCW[] = {4, 5, 6, 7};
int rightCW[] = {7, 6, 5, 4};
int rightButtons[] = {0, 1};
const int motorSteps[8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 0, 1},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
int motorSpeed = 0;
void setup() {
for (int i=0; i < 4; i++) {
pinMode(leftCW[i], OUTPUT);
pinMode(rightCW[i], OUTPUT);
}
for (int i = 0; i < 2; i++) {
pinMode(leftButtons[i], INPUT);
pinMode(rightButtons[i], INPUT);
}
}
void loop() {
if (analogRead(leftButtons[0]) == 0) {
leftUp();
} else if(analogRead(leftButtons[1]) == 1){
leftDown();
}
if (analogRead(leftButtons[0]) == 0) {
rightUp();
} else if(analogRead(leftButtons[1]) == 1){
rightDown();
}
}
void leftUp() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCW[j], motorSteps[j][i]);
delay(1);
}
}
}
void leftDown() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
void rightUp() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
void rightDown() {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCW[j], motorSteps[j][i]);
delay(1);
}
}
}

View 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);
}

View File

@@ -0,0 +1,95 @@
int leftCCW[] = {8, 9, 10, 11};
int leftCW[] = {11, 10, 9, 8};
int leftButtons[] = {0, 1};
int rightCCW[] = {4, 5, 6, 7};
int rightCW[] = {7, 6, 5, 4};
int rightButtons[] = {2, 3};
const int motorSteps[8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 0, 1},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
int motorSpeed = 0;
void setup()
{
for (int i=0; i < 4; i++) {
pinMode(leftCW[i], OUTPUT);
pinMode(rightCW[i], OUTPUT);
}
for (int i = 0; i < 2; i++) {
pinMode(leftButtons[i], INPUT);
pinMode(rightButtons[i], INPUT);
}
pinMode(12, INPUT);
Serial.begin(9600);
}
void loop()
{
if (digitalRead(12) == LOW)
{ windUp(); }
else { windDown(); }
}
void windUp() {
while(digitalRead(rightButtons[1]) == LOW || digitalRead(leftButtons[1] == LOW)){
if (digitalRead(rightButtons[1] == LOW))
{
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
if (digitalRead(leftButtons[1] == LOW))
{
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCW[j], motorSteps[j][i]);
delay(1);
}
}
}
}
}
void windDown() {
while(digitalRead(rightButtons[0]) == LOW || digitalRead(leftButtons[0] == LOW)){
if (digitalRead(rightButtons[0] == LOW)) {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Right motor
digitalWrite(rightCW[j], motorSteps[j][i]);
delay(1);
}
}
}
if (digitalRead(leftButtons[0] == LOW)) {
for(int i=0; i < 8; i++){
for(int j=0; j < 4; j++){
// Left motor
digitalWrite(leftCCW[j], motorSteps[j][i]);
delay(1);
}
}
}
}
}