Тема: Запуск цикла по событию
Всем привет!
Решил собрать простенький автомат, управление фотокамерой для съёмки панорам.
Шаговый двигатель поворачивает камеру на заданный угол и автоматически включает спуск.
Поворот в одну сторону и в другую, до исх. позиции.
За основу взял скрипт из одной статьи на сайте iXBT.
Никак не получается сделать запуск так, чтобы после включения питания, цикл не запускался, а только после
Пытаюсь приспособить для начала цикла поворотов ножку 9. Не работает,
Начинает цикл, сразу после включения питания.
Что не так? Заранее СПАСИБО!
==========
// Съемка сферической панорамы
#include <AFMotor.h>
AF_Stepper motor1(200, 1); // Число шагов на один оборот мотора для 1-го двигателя
int ledPin = 10; // Ножка кнопки спуска затвора
int wzat = 100; // Время нажатия кнопки затвора — 0.1 с
int wp = 800; // Пауза перед спуском затвора — 0.8 с
int buttonPin = 9; // Ножка перемычки. Если замкнута, то начать съёмку
int buttonState = HIGH; // Состояние перемычки при старте HIGH закоротить LOW
void setup() {
buttonState = digitalRead(buttonPin);// Чтение состояния перемычки
pinMode(buttonPin, INPUT); // Включаем ножку на прием сигналов
pinMode(ledPin, OUTPUT); // Включаем ножку на вывод сигналов - спуск камеры
motor1.setSpeed(3); // Скорость вращения — 3 оборотов в минуту
motor1.release(); // Отключаем питание двигателя
if (buttonState == LOW){
for (int i=0; i <= 7; i++) {
delay(wp);
digitalWrite(ledPin, HIGH); // Нажимаем спусковую кнопку
delay(wzat); // Ждем
digitalWrite(ledPin, LOW); // Отпускаем спусковую кнопку
motor1.step(30, FORWARD, DOUBLE);
}
for (int i=0; i <= 7; i++) {
delay(wp);
digitalWrite(ledPin, HIGH); // Нажимаем спусковую кнопку
delay(wzat); // Ждем
digitalWrite(ledPin, LOW); // Отпускаем спусковую кнопку
motor1.step(30, BACKWARD, DOUBLE);
} } }
void loop() { motor1.release(); }