Сообщение №51925566

0 +0−0Фантик Фунтик03:52:37
14/08/2019
0 +0−0Alys Alys03:51:21
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);
}
Самые
^^^Наверх^^^Обратная связь