Arduino smart car

My Arduino smart car,
control is via WII nunchuk and nrf24l01+

code:

/*

 */
 #include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
/*-----( Declare Constants and Pin Numbers )-----*/
#define CE_PIN   9
#define CSN_PIN 10

 
const int AIA = 30;  // (pwm) pin 9 connected to pin A-IA 
const int AIB = 31;  // (pwm) pin 5 connected to pin A-IB 
const int BIA = 33; // (pwm) pin 10 connected to pin B-IA  
const int BIB = 34;  // (pwm) pin 6 connected to pin B-IB 

const int CIA = 35;  // (pwm) pin 9 connected to pin c-Ic 
const int CIB = 36;  // (pwm) pin 5 connected to pin c-Ic 
const int DIA = 37; // (pwm) pin 10 connected to pin d-Id  
const int DIB = 38;  // (pwm) pin 6 connected to pin d-Id 
 
byte speed = 255;  // change this (0-255) to control the speed of the motors 
 
 const uint64_t pipe = 0xE8E8F0F0E1LL; // Define the transmit pipe
int led = 13;
int mydata[2];
    
    RF24 radio(CE_PIN, CSN_PIN); // Create a Radio
  
 
 
void setup() {
  
     mydata[0]=0;
     pinMode(led, OUTPUT);
    Serial.begin(9600);
      radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();;

    
  
  pinMode(AIA, OUTPUT); // set pins to output
  pinMode(AIB, OUTPUT);
  pinMode(BIA, OUTPUT);
  pinMode(BIB, OUTPUT);
  
   pinMode(CIA, OUTPUT); // set pins to output
  pinMode(CIB, OUTPUT);
  pinMode(DIA, OUTPUT);
  pinMode(DIB, OUTPUT);
  stopnow();
}
 
void loop() {
  
  mydata[0]=0;
   if ( radio.available() )
  {
    // Read the data payload until we've received everything
    bool done = false;
    while (!done)
    {
      // Fetch the data payload
   done = radio.read( mydata, sizeof(mydata) );
   
      Serial.print(" mydata: ");

      Serial.println(mydata[0]);
       
      
 //     Serial.print(" Y = ");      
   //   Serial.println(joystick[1]);
       digitalWrite(led, HIGH);  
   //  delay(100);
    }
    
    
  }
  
  
  else
  {    
  //    Serial.println("No radio available");
       digitalWrite(led, LOW);
   //    delay(100);
  }

if (mydata[0]==1) forward();
if (mydata[0]==2) backward();
if (mydata[0]==3) left();
if (mydata[0]==4) right();
if (mydata[0]==0) stopnow();

delay(40);


}
 
 void stopnow()
{
  analogWrite(AIA, 0);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, 0);
  
    analogWrite(CIA, 0);
  analogWrite(CIB, 0);
  analogWrite(DIA, 0);
  analogWrite(DIB, 0);
}
 
 
 
void backward()
{
  analogWrite(AIA, speed);//left top
  analogWrite(AIB, 0);
analogWrite(BIA, speed);//right top
 analogWrite(BIB, 0);
  
  analogWrite(CIA, 0);
 analogWrite(CIB, speed);
 analogWrite(DIA, 0);
  analogWrite(DIB, speed);
  
  
}
 
void forward()
{
 analogWrite(AIA, 0);//left top
  analogWrite(AIB, speed);
analogWrite(BIA, 0);//right top
 analogWrite(BIB, speed);
  
  analogWrite(CIA, speed);
 analogWrite(CIB, 0);
 analogWrite(DIA, speed);
  analogWrite(DIB, 0);
  
}
 
void left()
{
  analogWrite(AIA, speed);
  analogWrite(AIB, 0);
  analogWrite(BIA, 0);
  analogWrite(BIB, speed);
  
  
  analogWrite(CIA, 0);
 analogWrite(CIB, speed);
 analogWrite(DIA, speed);
  analogWrite(DIB, 0);
  
}
 
void right()
{
 analogWrite(AIA, 0);
  analogWrite(AIB, speed);
  analogWrite(BIA, speed);
  analogWrite(BIB, 0);
  
  
  analogWrite(CIA, speed);
 analogWrite(CIB, 0);
 analogWrite(DIA, 0);
  analogWrite(DIB, speed);
}

Well done!

(deleted)

i need faster motors.

marco_arduino, did you had seen this thread?

nice work ... :smiley:

Made out well . you can upgrade it.