Schrittmotor Steuerung für Antennen Rotor - AZ-Delivery

Para recibir televisión satelital en una caravana, puede comprar una costosa antena automática de satélite o poner una simple antena de satélite barata en un trípode y apuntar manualmente.Esto suele llevar mucho tiempo, ya que la antena está fuera del receptor de televisión, pero dentro es difícil observar el éxito de la operación.

Una solución más conveniente y práctica es el rotor de antena, que aquí propone el control del motor progresivo.El Motor paso a paso está controlado por el módulo nodemcu Lua amica vs con ESP 8266 - 12F y, por lo tanto, puede funcionar a través de WLAN.Para ello se utiliza el esp8266 como punto de acceso.Usando un teléfono inteligente, puede controlar fácilmente la antena.

En este modo, el esp8266 recibe siempre la dirección IP 192.168.4.1

El programa crea un WLAN con la "Antena" de la SSID y la contraseña "womo 12345".Por supuesto, esto puede cambiar cambiando el programa.

Si el rotor de la antena está electrificado, puede encontrar un WLAN llamado "Antena" en el teléfono inteligente de la lista WLAN.Conectemos ahora a la WLAN y Activemos la aplicación del navegador.Como URL, introdujimos 192.168.4.1.

Deberíamos ver la siguiente página en el navegador:

Si pulsamos uno de esos botones, la antena debe girar en la dirección necesaria.

En parte:

 

 

 

 

/*
 • Copyright propietario c) 2015, majenko Technologies
 Conserva todos los derechos.
 * 
 • redistribución y utilización en forma de fuente y binario, con o sin modificaciones,
 • Se permiten las siguientes condiciones:
 * 
 * * Esta declaración de derechos de autor debe conservarse para la nueva distribución del código fuente.
 * Lista de condiciones y descargo de responsabilidad
 * 
 * * La retransmisión en forma binaria requiere la reproducción de la mencionada declaración de derechos de autor.
 * Lista de condiciones en el documento y declaraciones de exoneración y / o
 * otros materiales adjuntos.
 * 
 * * ya sea el nombre o la tecnología de majenko.
 • Los contribuyentes pueden ser utilizados para apoyar o reproducir fuentes
 * Este programa informático no está previamente autorizado por escrito.
 * 
 * Este programa informático fue proporcionado "tal como fue" por el propietario y el contribuyente del derecho de autor; y
 • Toda garantía expresa o tácita, incluida, entre otras, las siguientes:
 * las garantías de la comerciabilidad y la aplicabilidad a usos específicos son:
 * negación.En cualquier caso, el titular o el contribuyente del derecho de autor no incurrirá en responsabilidad alguna.
 • Cualesquiera datos directos, indirectos, secundarios, especiales, ilustrativos o de seguimiento
 • La contratación pública de bienes o servicios de sustitución, entre otros;
 • Pérdida de uso, datos o beneficios; o interrupción de la actividad mercantil, sea cual fuere la causa
 • Toda doctrina de la responsabilidad, sea contractual, objetiva o extracontractual
 * Incluye los casos de negligencia u otras causas atribuibles a la utilización del presente documento.
 * programas informáticos, aun cuando se les haya informado de la posibilidad o del daño.
 */

* crear y poner a disposición de los usuarios web puntos de acceso wifi.* *

35; incluye <Esp8266wifi.Hora>
35; incluye <Wificlient Inc..Hora> 
35; incluye <Servidor web esp8266.Hora>

* código html de la página de control
 * es una forma simple *
 * caja de entrada de velocidad y tres botones
 Derecha, izquierda, alto.
 */
Constante Chamuscar Índice HTML[] =
"Y?"Doctype HTML & gt
"; HTML & gt;"
"; la cabeza y la gt;"
"& lt; meta =" nombre = "ViewPort =" Content = "width = anchura del equipo, relación inicial = 1,0, relación máxima = 1,0, tasa de crecimiento del usuario = 0 & gt;"
"& lt; título & gt; rotor de antena & lt; título & gt;"
"& lt; modelo & gt;"
"Texto principal: ` color de antecedentes'", "." - "." - "." - ".". "-". ".". "-". ".". "-". ".". ".". ".". "-". ".". ".". ".". ".". ".". "". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ".". ""
"Introduzca {font size: 16pt;}
"& lt; / Style & gt;"
"/ cabeza & gt;"
"; texto principal y gt;"
"& lt; H1 & gt; rotor de antena & lt; / h1 & gt;"
"& lt; Planning Operations =" / data "method =" técnica "& gt;"
"; P & gt;"
"Tipo de entrada =", "presentación", "nombre =", "enlaces" "valor =", "enlaces" "," tipo de entrada = "
"Tipo de entrada =", "presentación", "nombre =", "cesación", "valor =", "cesación"; "cesación"; "T; nbsp"
"& lt; tipo de entrada =", "presentación", "nombre =", "legalidad" "valor =", "correcto" & gt; & lt; BR & gt; "
"Velocidad (1 a 10):" lt; BR & gt; "
"& lt; tipo de entrada =" texto "valor =" I "I" nombre = "velocidad" & gt; " 
"/ P & gt;"
"/ formulario & gt;"
"/ texto & gt;"
"/ html & gt;";

Global variable
Constante Chamuscar *Página 2 = Antena.; Nombre de la WLAN 
Constante Chamuscar *Contraseña = "Mujeres 12.345"; Contraseña de WLAN

Constante Interior STP. = 12; / / / número de aguja de la unidad de motor
Constante Interior Tu = 13; / / / número del pie del tubo para la conexión direccional del motor
Interior Orientación = 0; / / / orientación actual
Interior Deli = 100; / / / retardo del motor
Interior Velocidad = 1; Velocidad actual

Servidor web esp8266 Servidor(80); Activar servidor Web en puerto 80

/ / / cuando se solicita un servidor web
Vacío. Pie() {   Chamuscar Formato HTML[1000];Pedir zona de amortiguación   Usar la entrada de velocidad para enviar la página web al navegador   Configuración de la velocidad actual   Hacer una cadena de datos(Formato HTML, Índice HTML,Velocidad);    Servidor.Enviar(200, "Texto / html", Formato HTML );
}

/ / cuando se solicita "/ left" para
Vacío. Mano() {   Orientación = 1;Respuesta: Izquierda y página web   Pie();
}

/ / / cuando se solicita "/ derecha" para
Vacío. Linterna() {   Orientación = 2; - a la derecha.   Pie();
}

Cuando se solicite "/ STOP" para
Vacío. Manija() {   Orientación =0; Uso de la página web para detener y responder   Pie();    }

/ / / llama a esta función cuando pida "/ data"Sí.
Vacío. Procesamiento de datos() {   Cadena Sspd Corporation;   / / / sobre la base de los parámetros, la orientación y la solicitud   - velocidad establecida.Velocidad entre 1 y 10.   Si (Servidor.Hassage.(Enlace)) Orientación = 1;   Si (Servidor.Hassage.(Sí.)) Orientación = 2;   Si (Servidor.Hassage.(Stop)) Orientación = 0;   Si (Servidor.Hassage.(Velocidad)) {     Sspd Corporation = Servidor.Enojado adj.(Velocidad);     Velocidad = Sspd Corporation.Voint.();     Si (Velocidad < 1) Velocidad = 1;     Si (Velocidad > 10) Velocidad = 10;     Deli = (11-Velocidad)*10; Velocidad 1 paso a 100.                        - a 10 grados.   }   Pie(); Respuesta desde la página web
}

Vacío. Configuración() {   ¿- Listo?   Modo pinmode(STP., Salida);   Modo pinmode(Tu, Salida);   Escritura digital(STP.,Alto);   Escritura digital(Tu,Alto);   Retraso(1000);   Transporte.Iniciar(115200);   Transporte.Imprimir();   Transporte.Imprimir("Configurando puntos de acceso...");      Redes inalámbricas.Suave.(Página 2, Contraseña);   Dirección IP Mi IP. = Redes inalámbricas.Caramelo();   Transporte.Imprimir("Dirección IP AP:);   Transporte.Imprimir(Mi IP.);   / / IP siempre 192.168.4.1   Definición de la función de respuesta   Servidor.En("/", Pie);   Servidor.En("Izquierda"., Mano);   Servidor.En(Sí., Linterna);   Servidor.En(Detente., Manija);   Servidor.En("Fecha", Procesamiento de datos);   Activar servidor web   Servidor.Iniciar();   Transporte.Imprimir("Servidor http activado");
}

El camino principal.
Vacío. Correr() {   / / / inspección requerida   Servidor.Meneo();   / / distribución en función de la dirección   - un paso en el pedal.    / / el paso en MS está determinado por dly   Si (Orientación == 1) {     Transporte.Imprimir("Izquierda".);     Escritura digital(Tu,Bajo);     Escritura digital(STP.,Bajo);     Retraso(Deli);     Escritura digital(STP.,Alto);     Retraso(Deli);   }   Si (Orientación == 2) {     Transporte.Imprimir(Sí.);     Escritura digital(Tu,Alto);     Escritura digital(STP.,Bajo);     Retraso(Deli);     Escritura digital(STP.,Alto);     Retraso(Deli);   }
}

Esp-8266Projekte für fortgeschrittene

8 comentarios

Heinz K.

Heinz K.

Danke, hat soweit funktioniert. Falls jemand wissen möchte wozu ich das benutze kann das unter youtu.be/x0KHGZSZVEE eingesehen werden.

Andreas Wolter

Andreas Wolter

@Heinz K.: Sie könnten einen Counter einsetzen. Dafür bräuchten Sie zwei globale Variablen. Am besten oberhalb direkt unter int spd = 1; //aktuelle Geschwindigkeit

int counter = 0;
int maxCounter = 20;

counter ist der Zähler und maxCounter Ihre Grenze. Welcher Wert den 4,5cm entspricht, müssten Sie testen.

in die if-Anweisung fügen Sie dann den Code ein, der dafür sorgt, dass nach den festgelegten Schritten der stop-Befehl aufgerufen wird:
if (richtung == 1) {
Serial.println(“links”);
digitalWrite(dir,LOW);
digitalWrite(stp,LOW);
delay(dly);
digitalWrite(stp,HIGH);
delay(dly);
counter++;
if (counter > maxCounter) {
counter = 0;
handleStop();
}
}

Das wäre eine Lösung. Wenn ich das richtig verstanden habe, brauchen Sie nur einen Start Button. Daher könnte man das gesamte Programm weiter verschlanken.

Grüße,
Andreas Wolter
AZ-Delivery Blog

Heinz K.

Heinz K.

Hallo,
ich bin mit der Programmierung leider nicht so bewandert. Gibt es eine Möglichkeit das man mit den Tasten links und rechts immer eine bestimmte Anzahl der Drehungen anstösst und dann automatisch wieder stehen bleibt? Hintergrund: beim Luftgewehrschiessen gibt es 10er Schiessscheiben als Streifen auf dem die 10 Spiegel nebeneinander liegen. Diese müssen manuell weiter gezogen werden – immer ca. 4,5 cm. Ich würde aber gerne die Scheibe einspannen und nach jedem Schuss ein Knöpfchen drücken damit automatisch der nächste Spiegel erscheint. Das mit der Mechanik bekomme ich hin, nur an der Programmierung hakt es.

Andreas Wolter

Andreas Wolter

This Example shows the azimuth controll (left and right). For Elevation (up and down) any changes are needed. First you need a second stepper and second driver modul. Two more input fields in the HTML form. For example:
up
left stop right
down

Then you can duplicate the functions for direction handling and connect them to the left and right fields in this form.
The command
if (server.hasArg(“RECHTS”)) richtung = 2;
could expanded with 3 and 4 for up and down.
For the stepper controll you need one more variable: stp2
and you have to check if the variable dir is 3 or 4 then send the commands to the second stepper. Otherwise the first stepper will be moved.

Regards,
Andreas Wolter
AZ-Delivery Blog

Alberto

Alberto

Cool; It’s what I’ve been looking for for a long time.
If I want to control two motors (Azimuth and Elevation), what should I add to the code?
Thanks a lot

ani

ani

Und woher bekomme ich das Getriebe? Ohne Mechanik, sprich Getriebe, ist das alles Makulatur. Und wie ist es mit der Vertikalsteuerung Gibt es dafür auch Ideen? So werden z. Bsp. in anderen Bereichen der Funktechnik der Mond, Meteorschwärme, Flugzeuge oder Wolken angesteuert.

Jörg Mehring

Jörg Mehring

Hallo,
die Stromversorgung könnte man vielleicht der Phantomspeisung des LNBs entnehmen, da die Polarisation über eine Schaltspannung von 14 bis 18 Volt eingestellt wird. Je nach Strombedarf der o.g. Schaltung sollte das gehen.

Frank Jetzschmann

Frank Jetzschmann

Hallo,
bei Verwendung von (größeren) Schrittmotoren ist zwingend ein (mindestens) 100µF Elko direkt an der Schrittmotorsteuerplatine (+12V Anschluss) notwendig. Sonst wird die Schrittmotorsteuerplatine zerstört. Hinweise zu diesem Phänomen finden sich in diversen Applikationsschaltungen im Internet.

Sonst eine wirklich clevere Lösung mit Potential für eigene Verbesserungen :-)

Deja un comentario

Todos los comentarios son moderados antes de ser publicados