Olá a todos, estou tentando controlar um motor de passo por wifi, com o blynk
a ideia no total é que eu consiga através do blynk, e usando um RTC (ds3231) controlar o funcionamento do motor ( de passo, 5v mais especificamente o 28BYJ-48 + Driver ULN2003), ligando ele conforme horario determinado pelo blynk ( o qual eu iria digitar la) e que esse mesmo horario fosse verificado usando o sensor RTC como referencia, depois eu teria que conforme determinado peso em uma balança ( hx711+ célula de carga) ele liga-se o motor num intervalo de tempo ( que eu também determinaria posteriormente)
até agora eu ja sei como calibrar e usar a balança, mas não consegui achar nenhum exemplo de como controlar um motor de passo dessa forma
Queria pelo menos ter por onde começar
Testar o Arduino com o servidor Blynk. Para ligar o Arduino à rede local (por sua vez ligada à internet) e aceder ao servidor Blynk vai ser necessário um módulo Wi-Fi. Nesta página encontrei um exemplo que utiliza o módulo ESP8266 para aceder à rede local e enviar dados para o servidor Blynk: Introdução ao Blynk App - Crie projetos em Arduino - Embarcados . Depois é usar a Blynk App para interagir de acordo com as necessidades.
Assim que conseguires desenvolver cada um dos pontos anteriores individualmente com sucesso, o passo seguinte será estruturar o sistema. Desenvolver um algoritmo geral, por exemplo através de fluxograma e/ou diagrama de estados, implementar o código e testar, testar, testar, corrigir, testar, testar...
Os exemplos que encontrei foram os primeiros que me apareceram, não sei se são realmente bons. Pode ser que existam outros melhores ou mais adequados... Esse serviço Blynk e a respectiva App parecem ser muito interessantes, quando eu tiver tempo tenho de experimentar também. Por vezes a utilização de um módulo Wi-Fi pode ser um pouco difícil, mas nada como procurar e fazer exemplos mais simples com o módulo em questão.
Se já utilizaste cada um dos módulos individualmente e a dificuldade estiver no serviço Blynk, então eu sugeria realizar alguns exemplos simples, como por exemplo ligar um LED remotamente, etc. A partir daí será mais fácil.
meu motor precisa de 2048 passos pra dar uma voltar, então eu acabo multiplicando o numero de voltas desejadas por 2048, mas se eu peço para dar 4 e depois 2 ele gira no sentido antihorario, qual a maneira deveria ser feito isso para que ele continuasse rodando no mesmo sentido?
outra coisa que eu queria perguntar é se tem como converter essa multiplicação e ele indicar a contagem de 1 volta a cada 2048 passos ao invés de aparecer a contagem inteira
eu tentei o maximo possivel mas o que eu consegui sozinho foi só esse codigo aqui
// Include the AccelStepper Library
#include <AccelStepper.h>
// Creates an instance
// Pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence
AccelStepper myStepper(AccelStepper::FULL4WIRE, 4, 6, 5, 7);
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "";
char pass[] = "";
// Hardware Serial on Mega, Leonardo, Micro...
#define EspSerial Serial1
// or Software Serial on Uno, Nano...
//#include <SoftwareSerial.h>
//SoftwareSerial EspSerial(2, 3); // RX, TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 9600
ESP8266 wifi(&EspSerial);
int cup_slider;
void setup()
{
Serial.begin(9600);
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
BLYNK_WRITE(V0) // Slider in V0
{
cup_slider=param.asInt();
myStepper.setMaxSpeed(1000.0);
myStepper.setAcceleration(100.0);
myStepper.setSpeed(300.0);
myStepper.moveTo((cup_slider) * 2048ul);
}
void loop() {
{
// Move the motor one step each time through loop()
myStepper.run();
Serial.println(myStepper.currentPosition());
Blynk.run();
}
}