Помощь по сборки 4wd робота
- Войдите на сайт для отправки комментариев
Вс, 19/11/2017 - 18:59
Здраствуйте! Нужна помощь, я только начинаю осваивать arduino. Купил коплект для сборки робота-машики. В комплекте - Arduino Uno, серво-привод, 4 двигателя, ультро-звуковой датчик и драйвер управления двигателями L298. Проблема в том, что сам не могу пока написать скеч ( из за отсутсвия знаний), а в интернете везде скетчи только для варианта с двумя драйверами управления двигателями L298N (они отличаются). Помогите пожалуйста как исправить скеч? Спасибо!
#define Trig 8
#define Echo 9
#include <Servo.h>
Servo servo;
int ugol = 90;
int smotrim_vlevo = 0;
int smotrim_vpravo = 0;
int smotrim_priamo = 0;
int vremia;
const int in11 = 0; // L298N-1 pin 1
const int in12 = 1; // L298N-1 pin 2
const int in13 = 2; // L298N-1 pin 2
const int in14 = 3; // L298N-1 pin 3
const int in21 = 4; // L298N-2 pin 1
const int in22 = 5; // L298N-2 pin 2
const int in23 = 6; // L298N-2 pin 2
const int in24 = 7; // L298N-2 pin 3
void setup()
{
servo.attach(10); // серву подключаем к 10 пину
pinMode(Trig, OUTPUT); // выход
pinMode(Echo, INPUT); // вход
pinMode(in11, OUTPUT); // выход на L298n
pinMode(in12, OUTPUT); // выход на L298n
pinMode(in13, OUTPUT); // выход на L298n
pinMode(in14, OUTPUT); // выход на L298n
pinMode(in21, OUTPUT); // выход на L298n
pinMode(in22, OUTPUT); // выход на L298n
pinMode(in23, OUTPUT); // выход на L298n
pinMode(in24, OUTPUT); // выход на L298n
}
void ehat_priamo(){
digitalWrite(in11, LOW);
digitalWrite(in12, HIGH);
digitalWrite(in13, LOW);
digitalWrite(in14, HIGH);
digitalWrite(in21, LOW);
digitalWrite(in22, HIGH);
digitalWrite(in23, HIGH);
digitalWrite(in24, LOW);
}
void ehat_vpravo()
{
digitalWrite(in21, LOW);
digitalWrite(in22, HIGH);
digitalWrite(in23, HIGH);
digitalWrite(in24, LOW);
}
void ehat_vlevo(){
digitalWrite(in21, HIGH);
digitalWrite(in22, LOW);
digitalWrite(in23, LOW);
digitalWrite(in24, HIGH);
}
void stoiat(){ // стоять
digitalWrite(in11, LOW);
digitalWrite(in12, LOW);
digitalWrite(in13, LOW);
digitalWrite(in14, LOW);
digitalWrite(in21, LOW);
digitalWrite(in22, LOW);
digitalWrite(in23, LOW);
digitalWrite(in24, LOW);
}
void kak_meriat_sleva(){
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
vremia = pulseIn(Echo, HIGH);
smotrim_vlevo = vremia/58;
}
void kak_meriat_priamo(){
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
vremia = pulseIn(Echo, HIGH);
smotrim_priamo = vremia/58;
}
void kak_meriat_sprava(){
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
vremia = pulseIn(Echo, HIGH);
smotrim_vpravo = vremia/58;
}
void loop(){
kak_meriat_priamo();
if(smotrim_priamo<30){
stoiat();
delay(100);
for(ugol=90;ugol>=10;ugol--){
servo.write(ugol);
delay(5);
}
kak_meriat_sprava();
delay(100);
for(ugol=10;ugol<=170;ugol++){
servo.write(ugol);
delay(5);
}
kak_meriat_sleva();
delay(100);
for(ugol=170;ugol>=90;ugol--){
servo.write(ugol);
delay(5);
}
if(smotrim_vpravo < smotrim_vlevo){
ehat_vpravo();
delay(400);
stoiat();
}
else{
ehat_vlevo();
delay(400);
stoiat();
}
}
else{
ehat_priamo();
}
}
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Помогите пожалуйста как исправить скеч?
Почитайте вот это
№1 Программирование для совсем чайников
№2 Книга Блума с файлами примеров
и исправьте.
Спасибо!
Не за что!
Странно Вы "начинаете осваивать ардуино". С просьбы - сделайте всё за меня. Ну неужели всё удовольствие в том, чтобы китайская машинка проехалась туда-сюда? Что, разобраться самому совсем неинтересно? Лень? Так же как и найти комплект готовых скетчей для этого конструктора? Кстати, ссылка на такой комплект есть и на этом форуме...