0 +0−0 | Фантик Фунтик | 03:52:37 14/08/2019 | ||||||
| ||||||||
//[email protected] //Шаговый двигатель NPM PFC42H-48D1 12OM #include const int stepsPerRevolution = 48; // change this to fit the number of steps per revolution for your motor // initialize the stepper library on pins 8 through 11: Stepper stepmotor (stepsPerRevolution, 4,5,6,7); int analogPin = A0; // здесь фоторезистор int val = 0; // переменная для хранения значения входного напряжения int H=1; //флаг состояния задвижки относительно предыдущего состояния void setup() { stepmotor.setSpeed(48); Serial.begin(9600); kalibrovka(); } void loop() { fotorezistor(); } void high_motor() { Serial.println("clockwise"); stepmotor.step(360); } void low_motor() { Serial.println("counterclockwise"); stepmotor.step(-360); } void stop_motor()//для экономии энергии функция подает низкий сигал на обмотки двигателя { digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(7, LOW); } void fotorezistor()//функция считывает значение фоторезистора, сравнивает с установлеными значениями { val = analogRead(analogPin); // считываем значение с фоторезистора Serial.println(val); // поcылаем значение на компьютер Serial.println(H); delay(1000); if ((val >= 50)&&(H==1)) // нужное значение подбирайте опытным путем { high_motor(); stop_motor(); H=0; } if ((val<=10)&&(H==0)) { low_motor(); stop_motor(); H=1; } } void kalibrovka()//При первом включении заслонка поднимается вверх на 480 шагов, //при достижении самого верха двигатель прокручивается. { Serial.println("Kalibrovka"); stepmotor.step(480); delay(1000); stop_motor(); val = analogRead(analogPin); // считываем значение с фоторезистора if (val>=50){ H=1; } if (val<50){ H=0; } Serial.println(val); // полылаем значение на компьютер Serial.println(H); } |