Índice:
- Etapa 1: Componentes
- Etapa 2: placa de servidor
- Etapa 3: codificador do servidor: copiar e colar
- Etapa 4: Quadro do cliente
- Etapa 5: Código do cliente: copiar e colar
- Etapa 6: uma observação sobre o código:
Vídeo: Servo controle sem fio: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Este projeto controla a rotação de um servo sem fio por meio de um potenciômetro (botão). A rotação é restrita a 180 graus.
Etapa 1: Componentes
Este projeto consiste em
- 2 placas controladoras Arduino UNO com cabo conector USB
- 2 nRF24L01 - Módulos transceptores de RF de 2,4 GHz (para obter ajuda com esses módulos, consulte
- 2 placas de adaptador de soquete (chips de mochila) para o nRF24L01
- 1 placa de expansão protótipo ProtoShield 328 compatível com Arduino opcional
- 1 servo
- 1 potenciômetro analógico
- ferro de solda e solda
- arame
- alicate de bico fino
- envoltório isolante, usei fita isolante
Etapa 2: placa de servidor
A placa de servidor consiste em um módulo transceptor, a placa de blindagem (que se conecta diretamente à placa Arduino apenas de uma maneira) e o servo. Decidi incluir a placa de proteção para evitar a placa de ensaio desajeitada e dar ao projeto um acabamento mais limpo.
O código e o recurso da web incluídos na lista de componentes detalham as conexões do módulo do transceptor. Decidi soldar as conexões em vez de usar conexões temporárias como em projetos anteriores. Como sou iniciante, isolei cada junta de solda com fita isolante (não eram bonitas).
Os pinos da placa de blindagem correspondem diretamente aos pinos do Arduino. Antes de prender a placa de blindagem, conectei o aterramento e os pinos de 5 volts aos trilhos da placa com fio e solda. Também soldei os fios de 5 volts e terra dos componentes aos trilhos da placa de blindagem e, finalmente, conectei o Arduino à placa de blindagem.
O servo é conectado ao pino de 3 volts para alimentação e ao pino digital 2 para comunicação.
** Observação: só depois de concluir esta construção, percebi que minhas placas Arduino não são idênticas. Meu transceptor do servidor é alimentado pelo trilho de 5 volts na placa de blindagem, enquanto o transceptor do cliente é alimentado pelo pino de 3 volts, embora eu tenha sido levado a acreditar que uma função do chip adaptador no transceptor é fornecer a tensão adequada. Tudo o que posso dizer com certeza é que o código fornecido combinado com a configuração mostrada nas imagens produz o efeito descrito.
Etapa 3: codificador do servidor: copiar e colar
// CÓDIGO DO SERVIDOR / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Não usado GND> GND VCC> 5V * / // fiação do transceptor
#incluir
// biblioteca servo
#incluir
// biblioteca do transceptor
#define Servopin 2
// pino de saída do servo de declaração
ServoTimer2 serv;
// declaração do nome do servo
RH_NRF24 nrf24;
// declaração do nome do transceptor
int timeOUT = 0;
// variável para servo
pulsos internos = 90;
// variável para armazenar pulsos
void setup ()
{serv.attach (Servopin); // servo stuff
Serial.begin (9600); // coisas do transceptor
if (! nrf24.init ())
Serial.println ("falha de inicialização"); // coisas do monitor serial if (! nrf24.setChannel (12)) // definir o canal para 125 Serial.println ("setChannel falhou"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF falhou"); // coisas do monitor serial}
void loop ()
{if (nrf24.available ()) {uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof (buf); if (nrf24.recv (buf, & len)) // coisas do monitor serial {Serial.print ("solicitação obtida:"); pulsos = strtol ((const char *) buf, NULL, 10); // coisas de mudança de tipo de dados
int prin = map (pulsos, 750, 2250, 0, 180); // coisas de mudança de tipo de dados
Serial.println (prin); serv.write (pulsos); // faz o servo se mover}}
}
Etapa 4: Quadro do cliente
A placa do cliente consiste em um módulo transceptor e o potenciômetro. O módulo transceptor é conectado da mesma forma ** que a placa para servidor, com a exceção de que, sem a placa de proteção, ele é conectado diretamente aos pinos da placa Arduino.
O potenciômetro leva 5 V, aterrado, e é conectado ao pino 2 analógico.
** Observação: conforme mencionado na etapa da placa para servidor, minhas placas Arduino não são idênticas. Neste caso, o transceptor está conectado ao pino identificado como 3,3 V, diretamente adjacente ao pino de 5 V, mas, novamente, tudo parece funcionar bem.
Etapa 5: Código do cliente: copiar e colar
// CÓDIGO CLIENTE / * NRF24L01 Arduino CE> D8 CSN> D10 SCK> D13 MO> D11 MI> D12 RO> Não usado GND> GND VCC> 5V * / // fiação do transceptor
#incluir
// biblioteca do transceptor
potpin int = A2; // delaração do potenciômetro
int val;
char tempChar [5];
String valString = ""; // coisas de mudança de tipo de dados
RH_NRF24 nrf24; // coisas do transceptor
void setup ()
{Serial.begin (9600); if (! nrf24.init ()) Serial.println ("falha de inicialização"); // Os padrões após o init são 2,402 GHz (canal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (12)) Serial.println ("setChannel falhou"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF falhou"); } // coisas do transceptor
void loop () {
val = analogRead (potpin); // coisas do potenciômetro
val = mapa (val, 0, 1023, 750, 2250);
valString = val; String str = (valString); str.toCharArray (tempChar, 5); // alteração do tipo de dados nrf24.send (tempChar, sizeof (tempChar));
}
Etapa 6: uma observação sobre o código:
O Código contém algumas funcionalidades limitadas de solução de problemas na forma de feedback do monitor serial na interface do software Arduino. Ao visualizar o monitor serial a partir do código SERVER (ctrl + shift + M), você deve ser capaz de ver o estado do potenciômetro na forma de um número entre 1 e 180.
Além disso, aqui está a biblioteca para wireless e servo:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
Recomendado:
Robô Arduino sem fio usando módulo sem fio HC12: 7 etapas
Robô Arduino sem fio usando módulo sem fio HC12: Olá pessoal, bem-vindos de volta. Em meu post anterior, eu expliquei o que é um circuito de ponte H, L293D motor driver IC, pegando carona L293D Motor driver IC para dirigir drivers de motor de alta corrente e como você pode projetar e fazer sua própria placa de driver de motor L293D
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio TP Link WN7200ND USB no trecho Raspbian: 6 etapas
Ponto de acesso sem fio com alcance de cinquenta metros com adaptador sem fio USB TP Link WN7200ND no Raspbian Stretch: Raspberry Pi é ótimo para criar pontos de acesso sem fio seguros, mas não tem um bom alcance, usei um adaptador sem fio USB TP Link WN7200ND para estendê-lo. Quero compartilhar como fazer por que quero usar um pi de framboesa em vez de um roteador?
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: 4 etapas
Faça você mesmo de microfone sem fio para sistema de guitarra sem fio: Tenho assistido a alguns vídeos e bandas e quase todas usam um sistema sem fio na guitarra. Enlouquecer, mover-se, caminhar e fazer o que quiserem sem o cabo, então sonho em ter um .. Mas .. para mim agora é muito caro então eu vim para isso
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: 4 etapas
Transforme uma campainha sem fio em um interruptor de alarme sem fio ou botão liga / desliga: recentemente construí um sistema de alarme e o instalei em minha casa. Usei interruptores magnéticos nas portas e os conectei através do sótão. As janelas eram outra história e fiação direta não era uma opção. Eu precisava de uma solução sem fio e isso é
Converter roteador sem fio em ponto de acesso 2x do extensor sem fio: 5 etapas
Converter Roteador Wireless em Ponto de Acesso Wireless Extender 2x: Eu tinha uma conexão de internet wireless ruim em minha casa devido a um RSJ (viga de suporte de metal no teto) e queria aumentar o sinal ou adicionar um extensor extra para o resto da casa. Eu tinha visto extensores por cerca de £ 50 em um eletro