Работа с шаговым двигателем 28BYJ-48, и DHT11.
- Войдите на сайт для отправки комментариев
Пнд, 05/06/2017 - 21:29
Парни помогите кому не сложно сделать зависимость, написал 2 скетча не знаю как объеденить. Надо сделать чтобы допустим при 20C двигатель делал пару оборотов в одну сторону, а при 30C такое же количество оборотов в обратную.Нужно очень срочно, заранее спасибо!
#include "DHT.h" #define DHTPIN 12 DHT dht(DHTPIN, DHT11); void setup() { Serial.begin(9600); dht.begin(); Serial.println("DHTxx test!"); } void loop() { delay(1000); float h = dht.readHumidity(); //Считываем влажность float t = dht.readTemperature(); // Считываем температуру if (isnan(t) || isnan(h)) { Serial.println("Failed to read from DHT"); } else { Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.println(" *C"); } }
#include <AccelStepper.h> #include <MultiStepper.h> #define HALFSTEP 8 // Определение пинов для управления двигателем #define motorPin1 7 // IN1 на 1-м драйвере ULN2003 #define motorPin2 6 // IN2 на 1-м драйвере ULN2003 #define motorPin3 5 // IN3 на 1-м драйвере ULN2003 #define motorPin4 4 // IN4 на 1-м драйвере ULN2003 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); void setup(){ stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(1000.0); stepper1.setSpeed(200); stepper1.moveTo(20000); } void loop(){ // Изменяем направление, если шаговик достигает заданного положения if(stepper1.distanceToGo()==0) stepper1.moveTo(-stepper1.currentPosition()); stepper1.run(); }
Парни выручайте пожалуйста.
ДЛя начала в первом скетче нужно избавиться от delay().
Если не хотите (не можете) делать сами - следует обратиться в раздел "Ищу исполнителя". Здесь заявлять "нужно очень срочно" - дурной тон.
Понял. Не подскажешь почему от делай избавиться надо? Система виснуть будет?
Понял. Не подскажешь почему от делай избавиться надо? Система виснуть будет?
Вот представь: 31 декабря, середина дня, решаем проводить старый год, решаем долго и вдумчиво, в какой то момент впадаем в delay(). Очнулись, на дворе 1 января, утро. А Нового года, вроде как и не было.)))))
Понял. Не подскажешь почему от делай избавиться надо? Система виснуть будет?
delay() идеально подходит для сдучаев, когда требуется периодически выполнять единственное действие. (поэтому его так любят авторы демонстрационных примеров) Когда нужно совершать параллельно несколько действий, delay() парализует работу контроллера и препятствует одновременной работе устройств.
Поэтому объединить два (три или более) фрагмента кода (да еще так, чтобы они рьа работали) можно только в том случае, когда каждый из них не использует delay().
Поэтому общее правило: Если необходимо объединить два скетча, первое, что необходимо сделать, - это в каждом из них избавиться от delay().