Официальный сайт компании Arduino по адресу arduino.cc
#include <AccelStepper.h> AccelStepper Stepper1(1,10,12); int steeps = 100; // количество шагов long time1 = 0; // Исходное значение для таймера. long time2 = 1000; unsigned long mill; const byte btnPin = A0; bool btn; const byte relePin = 5; bool Myrele; unsigned long past; const unsigned long time1sec = 3000; unsigned long eventTime=0; void setup() { Stepper1.setMaxSpeed(500); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду) Stepper1.setAcceleration(7000); //устанавливаем ускорение (шагов/секунду^2) pinMode(btnPin, INPUT_PULLUP); pinMode(relePin, OUTPUT); digitalWrite(relePin, Myrele = 0); } void loop() { unsigned long r = millis(); mill = millis(); btn = digitalRead(btnPin); if (!btn) { /* если кнопка нажата*/ delay (50); digitalWrite(relePin, Myrele = 1); /*то вкл реле*/ past = mill; } if (Myrele & mill - past >= time1sec) {/*если реле вкл больше 3 сек*/ digitalWrite(relePin, Myrele = 0);/*то выкл*/ past = mill; } if(digitalRead(btnPin) == 0) { if(r - time1 > time2) { delay (2000); Stepper1.move(steeps); steeps=steeps*1; time1 = r; } } Stepper1.run(); }
Это в анналы...
Да
теперь работает лучше
#include <AccelStepper.h> AccelStepper Stepper1(1,10,12); int steeps = 100; // количество шагов long time1 = 0; // Исходное значение для таймера. long time2 = 1000; unsigned long mill; const byte btnPin = A0; bool btn; const byte relePin = 5; bool Myrele; unsigned long past; const unsigned long time1sec = 4000; unsigned long eventTime=0; void setup() { Stepper1.setMaxSpeed(500); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду) Stepper1.setAcceleration(7000); //устанавливаем ускорение (шагов/секунду^2) pinMode(btnPin, INPUT_PULLUP); pinMode(relePin, OUTPUT); digitalWrite(relePin, Myrele = 0); } void loop() { unsigned long r = millis(); mill = millis(); btn = digitalRead(btnPin); if (!btn) { /* если кнопка нажата*/ delay (1000); digitalWrite(relePin, Myrele = 1); /*то вкл реле*/ past = mill; if(r - time1 > time2) { delay (2000); Stepper1.move(steeps); steeps=steeps*1; time1 = r; } } Stepper1.run(); if (Myrele & mill - past >= time1sec) {/*если реле вкл больше 3 сек*/ digitalWrite(relePin, Myrele = 0);/*то выкл*/ past = mill; } }
#include <AccelStepper.h> AccelStepper Stepper1(1,10,12); int steeps = 100; // количество шагов long time1 = 0; // Исходное значение для таймера. long time2 = 1000; unsigned long mill; const byte btnPin = A0; bool btn; const byte relePin = 5; bool Myrele; unsigned long past; const unsigned long time1sec = 3000; unsigned long eventTime=0; void setup() { Stepper1.setMaxSpeed(500); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду) Stepper1.setAcceleration(7000); //устанавливаем ускорение (шагов/секунду^2) pinMode(btnPin, INPUT_PULLUP); pinMode(relePin, OUTPUT); digitalWrite(relePin, Myrele = 0); } void loop() { unsigned long r = millis(); mill = millis(); btn = digitalRead(btnPin); if (!btn) { /* если кнопка нажата*/ delay (50); digitalWrite(relePin, Myrele = 1); /*то вкл реле*/ past = mill; } if (Myrele & mill - past >= time1sec) {/*если реле вкл больше 3 сек*/ digitalWrite(relePin, Myrele = 0);/*то выкл*/ past = mill; } if(digitalRead(btnPin) == 0) { if(r - time1 > time2) { delay (2000); Stepper1.move(steeps); steeps=steeps*1; time1 = r; } } Stepper1.run(); }Это в анналы...
Это в анналы...
Да
теперь работает лучше
#include <AccelStepper.h> AccelStepper Stepper1(1,10,12); int steeps = 100; // количество шагов long time1 = 0; // Исходное значение для таймера. long time2 = 1000; unsigned long mill; const byte btnPin = A0; bool btn; const byte relePin = 5; bool Myrele; unsigned long past; const unsigned long time1sec = 4000; unsigned long eventTime=0; void setup() { Stepper1.setMaxSpeed(500); //устанавливаем максимальную скорость вращения ротора двигателя (шагов/секунду) Stepper1.setAcceleration(7000); //устанавливаем ускорение (шагов/секунду^2) pinMode(btnPin, INPUT_PULLUP); pinMode(relePin, OUTPUT); digitalWrite(relePin, Myrele = 0); } void loop() { unsigned long r = millis(); mill = millis(); btn = digitalRead(btnPin); if (!btn) { /* если кнопка нажата*/ delay (1000); digitalWrite(relePin, Myrele = 1); /*то вкл реле*/ past = mill; if(r - time1 > time2) { delay (2000); Stepper1.move(steeps); steeps=steeps*1; time1 = r; } } Stepper1.run(); if (Myrele & mill - past >= time1sec) {/*если реле вкл больше 3 сек*/ digitalWrite(relePin, Myrele = 0);/*то выкл*/ past = mill; } }