
potreboval by som poradit .. som uplny ale uplny amater a chcel by som sa nieco nove naucit.
Nejak sa mi podarilo podla navodov z celeho sveta zosuladit nejaky ten moj program ale uz som v koncoch a vo vela veci neviem ako dalej.
Skor ako tu vlozim ten moj kod chcem povedat, ze by som si chcel spravit taky kamerovy slider prepojeny cez BT a Android aplikaciu.
Moj problem je v tom ze neviem ako nastavim, ze ked sa stlaci tlacidlo tak motor spravy niekolko otacok spat az kym tlacidlo bude vypnute.
Dalsí problem mam v rychlosti motora .. ... snazil som sa zmenit rychlost cez aplikaciu ale... stale narazim na ten isty problem ze hodnotu z aplikacie mi nezoberie a motor mi len pipne ... potrebujem to nejako ulozit v premennej.
Opat jeden z problemov : ak stlacim tlacidlo v aplikacii /a/ aby sa mi siel motor v pravo az kym nenarazi na tlacidlo resp. vlavo ked stalcim /r/.
Za pomoc velmi pekne dakujem ..



A tu je ten moj program :
Kód: Vybrat vše
const int in1 = 4;
const int in2 = 5;
const int in3 = 6;
const int in4 = 7;
#define RX 11
#define TX 10
#define pinLED 13
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(TX, RX);
int rychlost = 1;
int rychlost1 = 0;
int tlacidlo = 2;
//
int uhol = 360;
int statustlacidla = 0;
void setup() {
bluetooth.begin(9600);
pinMode(pinLED, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(tlacidlo, INPUT_PULLUP);
char bluetoothData;
}
void loop() {
// proměnná pro ukládání dat z Bluetooth modulu
char bluetoothData;
statustlacidla = digitalRead(tlacidlo);
if (digitalRead(tlacidlo) == HIGH) {
digitalWrite(pinLED, HIGH);
} else {
digitalWrite(pinLED, LOW);
}
if (bluetooth.available()) {
bluetoothData = (bluetooth.read());
if (bluetoothData == 'l') {
for (int i = 0; i < (uhel * 1 / 6); i++) {
rotaceProtiSmeru();
digitalWrite(in1, LOW);// vypnutie motora
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
}
if (bluetoothData == 'p') {// 64 stupnova otacka
for (int i = 0; i < (uhel * 1 / 6); i++) {// 64 stupnova otacka
rotacePoSmeru();
digitalWrite(in1, LOW);// vypnutie motora
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
digitalWrite(in1, LOW);// vypnutie motora
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
if (bluetoothData == 'a') {// pohyb po doraz vlavo
for (int i = 0; i < (uhel * 64 / 45); i++) {// 64 stupnova otacka a i je mensie ako tlacidlo a tam je high
rotaceProtiSmeru();
digitalWrite(in1, LOW);// vypnutie motora
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
}
if (bluetoothData == 'r') {// pohyb poo doraz vpravo
for (int i = 0; i < (uhel * 64 / 45); i++) {// 64 stupnova otacka
rotacePoSmeru();
digitalWrite(in1, LOW);// vypnutie motora
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
}
if (bluetoothData == 'c') {// pohyb vpravo po doraz
}
if (bluetoothData == 'd') {// pohyb vlavo po doraz
}
if (bluetoothData == 'x') {// play
}
if (bluetoothData == 'y') {// pauza
}
if (bluetoothData == 'z') {// stop
}
}
delay(100);
}
// krátká pauza mezi kontrolami komunikace Bluetooth modulu
void rotacePoSmeru() {
statustlacidla = digitalRead(tlacidlo);
if (statustlacidla == LOW) {
krok1();
krok2();
krok3();
krok4();
krok5();
krok6();
krok7();
krok8();
} else {
krok8();
krok7();
krok6();
krok5();
krok4();
krok3();
krok2();
krok1();
krok0();
}
}
void rotaceProtiSmeru() {
statustlacidla = digitalRead(tlacidlo);
if (statustlacidla == LOW) {
krok8();
krok7();
krok6();
krok5();
krok4();
krok3();
krok2();
krok1();
} else {
krok1();
krok2();
krok3();
krok4();
krok5();
krok6();
krok7();
krok8();
krok0();
}
}
void krok0() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(rychlost);
}
void krok1() {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(rychlost);
}
void krok2() {
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(rychlost);
}
void krok3() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(rychlost);
}
void krok4() {
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(rychlost);
}
void krok5() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(rychlost);
}
void krok6() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
delay(rychlost);
}
void krok7() {
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(rychlost);
}
void krok8() {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(rychlost);
}