Código
- Código do transmissor
- Código do receptor
Código do transmissor Arduino
#include // Biblioteca SPI para comunicar com o nRF24L01 + # include "RF24.h" // A biblioteca principal do nRF24L01 + # include "Wire.h" // Para comunicar # include "I2Cdev. h "// Para comunicar-se com MPU6050 # include" MPU6050.h "// A biblioteca principal do MPU6050MPU6050 mpu; int16_t ax, ay, az; int16_t gx, gy, gz; int data [2]; RF24 radio (9, 10); const uint64_t pipe =0xE8E8F0F0E1LL; configuração de void (void) {Serial.begin (9600); Wire.begin (); mpu.initialize (); // Inicializa o objeto MPU radio.begin (); // Iniciar a comunicação nRF24 radio.openWritingPipe (pipe); // Define o endereço do receptor para o qual o programa enviará dados.} Void loop (void) {mpu.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz); dados [0] =mapa (ax, -17000, 17000, 300, 400); // Enviar dados de dados do eixo X [1] =map (ay, -17000, 17000, 100, 200); // Enviar dados do eixo Y radio.write (data, sizeof (data));}
Código do receptor Arduino
#include #include #include #include #include // Biblioteca SPI para comunicação com o nRF24L01 + # include " RF24.h "// A biblioteca principal do nRF24L01 + const int enbA =3; const int enbB =5; const int IN1 =2; // Motor direito (-) const int IN2 =4; // Motor direito (+) const int IN3 =7; // Motor esquerdo (+) const int IN4 =6; // Motor direito (-) int RightSpd =130; int LeftSpd =130; int data [2]; rádio RF24 (9,10); const uint64_t pipe =0xE8E8F0F0E1LL; void setup () {// Defina os pinos do motor como OUTPUT pinMode (enbA, OUTPUT); pinMode (enbB, OUTPUT); pinMode (IN1, OUTPUT); pinMode (IN2, OUTPUT); pinMode (IN3, OUTPUT); pinMode (IN4, OUTPUT); Serial.begin (9600); radio.begin (); radio.openReadingPipe (1, tubo); radio.startListening (); } void loop () {if (radio.available ()) {radio.read (data, sizeof (data)); if (data [0]> 380) {// encaminhar analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); } if (data [0] <310) {// backward analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); } if (data [1]> 180) {// left analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, HIGH); } if (data [1] <110) {// right analogWrite (enbA, RightSpd); analogWrite (enbB, LeftSpd); digitalWrite (IN1, LOW); digitalWrite (IN2, HIGH); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); } if (data [0]> 330 &&data [0] <360 &&data [1]> 130 &&data [1] <160) {// stop car analogWrite (enbA, 0); analogWrite (enbB, 0); }}}