User Tools

Site Tools


projekt:rcbil

Översiktsbild:
rcbil_wiring_overview.jpg

Kontroller för framdrivningsmotorn:
VNH3SP30 - Fully integrated H-bridge motor driver
* Output current: 30 A
* 5V logic level compatible inputs
* PWM operation up to 10 kHz

BB-VNH3SP30 - Full bridge driver
* “up to 30A and 36V”

Datablad sidan 7:
IN-A IN-B
1 1 Brake to Vcc
1 0 Clockwise
0 1 Counter clockwise
0 0 Brake to GND

Servo:
* Matningsspänning: 6 V DC
* Signal: standard servopuls
* Färgkodning: Svart=Jord, Röd=+6V, Gul=Signal

Fordonskontroll via WiFi med ESP8266EX:
ESP8266EX Datasheet Version 5.8 Copyright (C) 2018

img_20190123_042342_crop.jpg img_20190123_042351_crop.jpg


Pinout vy på baksidan
3.3V RX #### PCB EDGE ####
RST IO0 #### PCB EDGE ####
EN IO2 #### PCB EDGE ####
TX GND #### PCB EDGE ####

Mikrocontroller:
Kort: Arduino Uno
Asynkron kommunikation: Serial input basic (2016-05-05)
PWM: Arduino Playground - PwmFrequency

Pin Basfrekvens Delare Timer
3 31250 1, 8, 32, 64, 128, 256, 1024 2
5 62500 1, 8, 64, 256, 1024 0
6 62500 1, 8, 64, 256, 1024 0
9 31250 1, 8, 64, 256, 1024 1
10 31250 1, 8, 64, 256, 1024 1
11 31250 1, 8, 32, 64, 128, 256, 1024 2

Om frekvens för en gpio ändras så ändras även frekvensen på resterande gpio inom samma timer.
Utfrekvens för PWM = Basfrekvens / Delare

Programförslag:

int angle; // 0 .. 255
int speed; // 0 .. 255
Serial.begin(9600);
//
powertrain_pwm_pin  = 9;
steering_pwm_pin    = 5;
powertrain_in-a_pin = 2;
powertrain_in-b_pin = 3;
//
pinMode(steering_pwm_pin,    OUTPUT);
pinMode(powertrain_pwm_pin,  OUTPUT);
pinMode(powertrain_in-a_pin, OUTPUT);
pinMode(powertrain_in-b_pin, OUTPUT);
//
// setPwmFrequency(powertrain_pwm_pin,    8); // 3906 Hz
setPwmFrequency(steering_pwm_pin,   1024); // 61 Hz
digitalWrite(powertrain_in-a_pin, HIGH ); // Medurs (clockwise)
digitalWrite(powertrain_in-b_pin, LOW );
for(;;){
  // 012345678901
  // CMD:123 123n
  for(bytes=0;  bytes<4+8+1;  bytes++){
    //if(  Serial.available() > 0  ) {
      cmd[bytes] = Serial.read();
      //}
    }
  if(  !strncmp(cmd,4,"CMD:") && cmd[11] == '\n'  ){
    speed = atoi(cmd+4);
    angle = atoi(cmd+8);
    AnalogWrite(powertrain_pwm_pin, speed)
    AnalogWrite(steering_pwm_pin,   angle) // XX
    }
  }
Pinout
DC plug USB [Reset]
.
.
AREF
GND
IOref 13
Reset 12
3.3V ~11
5V ~10
GND ~9 Motor PWM
GND 8
Vin 7
- ~6
A0 ~5 Styrservo
A1 4
A2 ~3 Motor IN-B
A3 2 Motor IN-A
A4 TX 1 ESP8266
A5 RX 0 ESP8266
Att genomföra OK
Reparera eller byta servo
Ta reda på protokoll från program på datortelefon
Programkod för ESP8266EX
Datahastighet ESP8266EX till Arduino
Skriva programkod för Arduino
Extra OK
Batterisäkring
Snabbare motor med kraft för framdrivning
Mer info
projekt/rcbil.txt · Last modified: 2019/01/27 19:32 by magiskaroyken