Робот движется вперёд – для новичков в радиоделе

May 22, 2014 by admin Комментировать »

Если  первый  опыт  движения,  скорее,  предназначался  для  проверки  работы  двигателей,  то следующая программа делает движение робота более осмысленным

/***** Робот с Обнаружителем Объектов ***************************/

/**********************************************************/

#include “motorh”

int Adc // Хранит Аналоговые Данные char Txt[6] // Хранит Строку

// Lcd задание выводов sbit LCD_RS at RD2_bit sbit LCD_EN at RD3_bit sbit LCD_D7 at RD7_bit sbit LCD_D6 at RD6_bit sbit LCD_D5 at RD5_bit sbit LCD_D4 at RD4_bit

// Направление выводов

sbit LCD_RS_Direction at TRISD2_bit sbit LCD_EN_Direction at TRISD3_bit sbit LCD_D7_Direction at TRISD7_bit sbit LCD_D6_Direction at TRISD6_bit sbit LCD_D5_Direction at TRISD5_bit sbit LCD_D4_Direction at TRISD4_bit

void Read_Adc()

{

ADCON0=0b11001101// Выбор Analog2 RC_Mode и ADON ADCON0GO=1 // Запуск преобразования

while(ADCON0GO) // Ожидаем, пока преобразование завершится Adc=(ADRESH*4)+(ADRESL/64) // 10 бит Данных ==> Adc

}

void main()

{

Delay_ms(1000) // Начальная задержка ANSELHF4=0 // RBO ==> Цифровой Ввод/Вывод ANSEL=0xFF

TRISA=0xFF

Lcd_Init() // Инициализация ЖКИ Lcd_Cmd(_LCD_CURSOR_OFF) // Курсор ЖКИ выключен while(PORTBF0) // Ожидание нажатия кнопки

while(1)

{

Read_Adc() // Чтение сигнала с Analog2 WordToStr(Adc,Txt) // Преобразование Данных в Строку Lcd_Out(1,1,Txt) // Отображение на ЖКИ

if (Adc>300) // Если обнаружен объект в допустимом диапазоне расстояний

{

}

else

{

}

}

}

Backward(255)Delay_ms(500) // Движение Назад и поворот Влево S_left(255)

Delay_ms(400)

Forward(255) // Объект вне диапазона ВПЕРЕД

/**********************************************************/ После некоторых правок, как и в предыдущих версиях, кроме строки: DCON0=0b11001001 // Выбор Analog2 RC_Mode и ADON

Значение взято из предыдущей программы и вставлено в эту Без этой правки на экране ЖКИ отображается число 1023, а робот беспрерывно отъезжает назад, поворачивается, вновь движется назад, и так без конца Исправление меняет движение робота: он стремится двигаться вперёд, а натыкаясь на препятствия, отъезжает назад, поворачивается и продолжает «искать свой путь»

Итак,   есть   настройка  АЦП,   указанная   в   руководстве,   есть   настройка,   которая   исправляет поведение робота Какая из них правильна

Источник: Гололобов ВН,- Самоучитель игры на паяльнике (Об электронике для школьников и не только), – Москва 2012

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты