Robojuchen / Mechatronics2013

Demo
2 stars 4 forks source link

Bluetooth yhteys ei pelitä #50

Open Lnation opened 10 years ago

Lnation commented 10 years ago

Ilmeni sellainen ongelma, että en saan kyllä kännykällä yhteyden bluetooth-vastaanottimeen (HC-05), mutta sarjaliikenne arduinon ja mokkulan välillä ei toimi. Tällaisella koodilla olen koittanut:

//Arduino tankki bluetooth-ohjauksella //Lauri Pellinen ja Antti Laaksonen

//Ohjelmalla ohjataan kahdella telalla kulkevaa alustaa. Kummallekin telalle on oma moottorinsa.

char dataIn = 'S'; //Puhelimelta tai muulta laitteelta tuleva data. int vasEteen = 2; int vasTaakse = 3; int oikEteen = 4; int oikTaakse = 5; char determinant; char det; int nopeus;

void setup() { Serial.begin(9600); pinMode(vasEteen, OUTPUT); pinMode(vasTaakse, OUTPUT); pinMode(oikEteen, OUTPUT); pinMode(oikTaakse, OUTPUT); }

void loop() { det = check();

while (det == 'F') { digitalWrite(vasTaakse, LOW); digitalWrite(oikTaakse, LOW); analogWrite(vasEteen, nopeus); analogWrite(oikEteen, nopeus); det = check(); }

while (det == 'B') { digitalWrite(vasEteen, LOW); digitalWrite(oikEteen, LOW); analogWrite(vasTaakse, nopeus); analogWrite(oikTaakse, nopeus); det = check(); }

while (det == 'R') { digitalWrite(oikEteen, LOW); digitalWrite(oikTaakse, LOW); digitalWrite(vasTaakse, LOW); analogWrite(vasEteen, nopeus); det = check(); }

while (det == 'L') { digitalWrite(vasEteen, LOW); digitalWrite(vasTaakse, LOW); digitalWrite(oikTaakse, LOW); analogWrite(oikEteen, nopeus); det = check(); } }

int check() { if (Serial.available() > 0) { dataIn = Serial.read(); if (dataIn == 'F') { determinant = 'F'; } else if (dataIn == 'B') { determinant = 'B'; } else if (dataIn == 'R') { determinant = 'R'; } else if (dataIn == 'L') { determinant = 'L'; } else if (dataIn == '0') { nopeus = 0;
} else if (dataIn == '1') { nopeus = 25; } else if (dataIn == '2') { nopeus = 50; } else if (dataIn == '3') { nopeus = 75; } else if (dataIn == '4') { nopeus = 100; } else if (dataIn == '5') { nopeus = 125; } else if (dataIn == '6') { nopeus = 150; } else if (dataIn == '7') { nopeus = 175; } else if (dataIn == '8') { nopeus = 200; } else if (dataIn == '9') { nopeus = 225; } else if (dataIn == 'q') { nopeus = 255; } return determinant; } }

Noita tutoriaaleja olen katsonut ja kokeilin myös SoftwareSerial -kirjastolla pinnejä 10 ja 11. Ei auttanut.

Niin että mitäs nyt? Jotain tarttis tehdä...

Robojuchen commented 10 years ago

Oletko kokeillut saada tuota androidin lähettämää dataa ulos millään ohjelmalla. Jos läppärissä on bluetooth yhteys sitä voisi kokeilla lukea vaikka tera term-nimisellä ohjelmalla. Siinä voi kokeillla myös lähettääkö puhelin eri sarjanopeudella kuin arduino. Tuon lähettävän laitteen ja koodin sarjaportin nopeus pitää olla sama. Onko tx ja rx kytketty oikein eli ristiin?

Jos ei lähde noilla kuntoon niin kokeillaan demoilla.