Buenas, recientemente he estado trabajando en un robot controlado por RC, que registra datos a una SD.
Pero cuando he empezado a ponerme con la parte de la SD, al poner SD.Begin en el void setup o en cualquier otro sitio, la conexión con el RC deja de funcionar.
Aquí les dejo mi codigo:
#include <SPI.h>
#include <Wire.h>
#include <LSM303D.h>
#include <SD.h>
#include <NewPing.h>
int ch2 = 10;
int aile = 0;
int ch0 = 0;
int thro = 8;
int ch1 = 9;
int rudder = 0;
int ch3 = 11;
int elevator = 0;
const int pulseInDelay = 20000;
int m1 = 4;
int e1 = 5;
int e2 = 6;
int m2 = 7;
const int UltrasonicPin = 12;
const int MaxDistance = 500;
int bip = 0;
NewPing sonar(UltrasonicPin, UltrasonicPin, MaxDistance);
int accel[3];
int mag[3];
float realAccel[3];
float heading, titleHeading;
char rtn = 0;
File logFile;
File TempHumPres;
void setup() {
Serial.begin(9600);
pinMode(e1, OUTPUT);
pinMode(e2, OUTPUT);
pinMode(m1, OUTPUT);
pinMode(m2, OUTPUT);
pinMode(13, OUTPUT);
SD.begin(3)
}
void loop() {
lectura();
}
void lectura() {
//Canal Aile
int rawValueCH2 = pulseIn(ch2, HIGH, pulseInDelay);
aile = map(rawValueCH2, 1093, 1860, -255, 255);
if (aile < -255)
{
aile = -255;
}
if (aile > 255)
{
aile = 255;
}
if (aile > -40.0 and aile < 40.0)
{
aile = 0;
}
Serial.println(aile);
//Canal Elevator
int rawValueCH3 = pulseIn(ch3, HIGH, pulseInDelay);
elevator = map(rawValueCH3, 1100.0, 1676.0, -255, 255);
if (elevator < -255)
{
elevator = -255;
}
if (elevator > 255)
{
elevator = 255;
}
if (elevator > -40.0 and elevator < 40.0)
{
elevator = 0;
}
Serial.println(elevator);
delay(300);
}
Gracias de antemano