Код для машинки на пульту
- Войдите на сайт для отправки комментариев
Вс, 17/05/2015 - 21:44
Всем привет. ЕСть вот такое устройство http://www.bajdi.com/arduino-rc-car-part-2-controlling-the-servo/ код работает, но мне нужно чтобы это работало без проводов. Посредством nRF24L01. Дублирую код:
/* http://www.bajdi.com RC car controlled by analog joystick Micro SG90 servo to turn front wheels DC motor controlled by L298n */ #include <Servo.h> Servo myservo; // create servo object to control a servo int Y; // Y axis = forward/backward int X; // X axis = left/right int fspeed; // forward speed int bspeed; // backward speed int iOldPos, iNewPos = 0; // servo position const int in1 = 2; // direction pin 1 const int in2 = 4; // direction pin 2 const int ena = 3; // PWM pin to change speed long previousMillis = 0; // timer for servo const int interval = 30; // interval to update servo position void setup() { pinMode(in1, OUTPUT); // connection to L298n pinMode(in2, OUTPUT); // connection to L298n pinMode(ena, OUTPUT); // connection to L298n myservo.attach(9); // attaches the servo on pin 9 to the servo object myservo.write(87); // center servo delay(50); // give servo time to change position } void loop() { int X = analogRead(A1); // joystick X axis int Y = analogRead(A0); // joystick Y axis if (Y < 500) // joystick forward { fspeed = (map(Y, 501, 0, 70, 250)); forward(fspeed); } if (Y > 540) // joystick backward { bspeed = (map(Y, 541, 1023, 70, 250)); backward(bspeed); } if (Y >= 500 && Y <= 540) // joystick is centered { stop(); } if (X > 490 && X < 530 ) // joystick is centered { iNewPos = 87; // 87 = servo in center position } if (X < 490) { iNewPos = (map(X, 491, 0, 88, 130)); } if (X > 530) { iNewPos = (map(X, 531, 1023, 86, 35)); } unsigned long currentMillis = millis(); if(iOldPos != iNewPos && currentMillis - previousMillis > interval) { // Issue command only if desired position changes and interval is over previousMillis = currentMillis; iOldPos = iNewPos; myservo.write(iNewPos); // tell servo to go to position in variable 'pos' } } void stop() { analogWrite(ena, 0); digitalWrite(in1, LOW); digitalWrite(in2, LOW); } void forward(int fspeed) { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(ena, fspeed); } void backward(int bspeed) { digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(ena, bspeed); }
Подскажите, что нужно изменить.
программировать немного умеешь?
программировать немного умеешь?
Надежда умирает последней?
не умею но хочу научится, чтобы это сделать. Но хоть с чего начать писать программу для этого?
ну тогда начинай сначала
http://wiki.amperka.ru/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D1%83%D1%80%D0%BE%...
как пройдешь уроки пиши))
да пухлявый))
А можешь за деньги сделать?
А можешь за деньги сделать?
какую именно сумму вы называете деньгами?
так ты же хотел научиться
А можешь за деньги сделать?
какую именно сумму вы называете деньгами?
10$
так ты же хотел научиться
Я и хочу. Но время жалко. Думаю пару недель уйдет.
изучай
изучай
Евгений, вы таки отказываетесь от 10 баксов? Стали наедаться?
гыыыы
ага)