роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Без описания
sanyo.95 Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Март 2014  



Здравствуйте уважаемые форумчане. Я только начинаю осваивать МК и мне нужна ваша помощь.
В общем есть простейшая схема мигания светодиода на atmega8, у меня вместо светодиода, через транзистор включено реле. Задача такова: регулировать временные задержки двумя подстроечными резисторами. Объясните пожалуйста как это можно осуществить, если можно.
Интересует именно включение резисторов в схему. И сам код.
Вот код программы:

#include <mega8.h>
#include <delay.h>
void main(void)
{

PORTB=0x00;
DDRB=0x01;

while (1)
{
PORTB.0=1;
delay_ms(4000);
PORTB.0=0;
delay_ms(3000);
}
}


Буду очень благодарен если поможете новичку.
Прикреплено изображение
relay.jpg

 
 Top
sanyo.95 Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Март 2014  



Ну скажите хоть что нибудь по этому поводу?
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



А что тут думать. Снимаешь показания потенциометра через ADC и используя это значения формируешь временную задержку которая у тебя будет delay_ms(значение * коэффициент);
Коэффициент подбираешь в зависимости номинала потенциометра, калибровать по ходу. Вот и всё. Добавишь в своём коде один аналоговый вход, к которому подключишь потенциометр вот так
(Добавление)
Второй потенциометр также, будет тебе вторая задержка
(Добавление)
Через терминал считываешь значение снятые с АЦП и подгоняешь коэффициентом под нужное тебе время задержки. Коллеги помогут тебе с кодом, я в C не сильно понимаю. А так из нескольких скетчей можно в раз слепить. Они все есть на www.arduino.cc Просто копируешь нужное и вставляешь к себе в код. Но это если в IDE писать будешь. Вот например для чтения потенциометра

void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);
}
и не трудно догадатьться, что для второго будет

// read the input on analog pin 1:
int sensorValue1 = analogRead(A1);

и.т.д
Прикреплено изображение
AnalogReadSerial_BB.png

(Отредактировано автором: 29 Марта, 2014 - 13:07:36)

 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



Подключение двух потенциометров
(Добавление)
По твоей схеме к 23 и 24 ноге подключаются, ну а +5 и землю думаю найдёшь)
Прикреплено изображение
AnalogReadSerial_BB.png

 
 Top
sanyo.95 Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Март 2014  



Большое спасибо!!! Теперь я знаю в каком направлении двигаться)
Вот бы еще с кодом кто помог?
 
 Top
sanyo.95 Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Март 2014  



Порылся в сети, попытался разобраться с АЦП, ничего не получилось толком.
Вот код:
#include <mega8.h>
#include <delay.h>



void main(void)
{
int r;
ACSR=0x80;
SFIOR=0x00;
ADMUX=0;
ADCSR=0x85;
PORTB=0x00;
DDRB=0x1;

while (1)
{
ADCSR |=0x40;
r=ADCW;


PORTB.0=1;
delay_ms(3000*r);
PORTB.0=0;
delay_ms(3000);
}
};

Прикрепляю проект в протеусе и прошивку.
Помогите пожалуйста.
Скачать файл: 01.zip
Скачан раз: 269
 
 Top
morokoriss Post Id



Генералиссимус


Сообщений всего: 697
Дата рег-ции: Нояб. 2011  



Коллеги, помогите человеку с кодом на C, дело трёх минут то
 
 Top
sanyo.95 Post Id


Рядовой


Сообщений всего: 5
Дата рег-ции: Март 2014  



Люди добрые, ну помогите пожалуйста рёв в три ручья
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



си это зло. ты же сам видешь что при оптимизации delay_ms превращается в nop
аппаратно защищенные регистры(переменные) нужно обзывать тегом volatile
 
 Top
Страниц (1): [1]
« С чего начать? »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru