Якщо перший досвід руху, швидше, призначався для перевірки роботи двигунів, то наступна програма робить рух робота більш осмисленим

/ ***** Робот з Обнаружитель Обєктів *************************** /

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

#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