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


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

> Описание: Изменение яркости.
sound Post Id


Полковник


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



Всем Привет!
Подскажите пожалуйста как я могу менять яркость светодиода при помощи микроконтроллера Atmega8?
Спасибо за помощь!
 
 Top
sound Post Id


Полковник


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



И ещё вопрос, как мне правильно настроить фьюзы, чтобы МК работал от встроенного генератора? Какой фьюз надо поставить что бы МК потом можно было перезаписывать?
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



1. Яркостью светодиода можно управлять через ШИМ (Широтно-Импульсная Модуляция/PWM - Pulse Width Modulation), который реализован в ATmega8 аппаратно. Если выводы аппаратного ШИМ заняты, либо светодиодов значительное количество - ШИМ можно реализовать программно, используя прерывания.

2. В datasheet для ATmega8, в разделе Calibrated Internal RC Oscillator, есть таблица:
Прикреплено изображение
1.gif

 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



Мега 8 работает изначально на внутренем RC-генераторе (1Mhz)
Прошивать через последовательный программатор можно всег да кроие тех cлучиев когда Вы случайно "испортили" spien
 
 Top
sound Post Id


Полковник


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



Если я правильно вас понял, я могу при прошивке не какие фъюзы не ставить?
 
 Top
gramozeka Post Id


Капитан


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



главное, чтобы при програмировании, не стояла галочка 'прошивать фусы' по умолчанию работает внутренний генератор. вот.
 
 Top
sound Post Id


Полковник


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



Я сейчас делаю как у меня на картинке(Картинка прикреплена), правильно?
Шью я его вот с этими настройками, ниже программа которую я пытаюсь зашить.
CODE:

#include <mega8.h> //Включаем библиотеку для работы с микроконтроллером ATMega8
#include <delay.h> //Включаем библиотеку для организации задержек
void main(void)
{
PORTD=0x00; //Выставляем все выходы порта D на 0, то есть, выключаем весь порт D
DDRD=0xFF; //Делаем порт D, как выход, чтобы на выходах порта было напряжение 5В
while (1) //Организовываем бесконечный цикл
{
PORTD.0=1; //Включаем светодиод на 0 выходе порта D
delay_ms(500); //Делаем задержку на 500 миллисекунд
PORTD.0=0; //Выключаем светодиод на 0 выходе порта D
delay_ms(500); //Делаем задержку на 500 миллисекунд
};
}

Программа взята из обучалки.
Прикреплено изображение
1273.jpg

(Отредактировано автором: 27 Ноября, 2008 - 13:21:31)

 
 Top
sound Post Id


Полковник


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



Что я делаю не так у меня при программирование появляются сообщение, и когда они появляются я жму No, и после этого продолжается программирование.
Помогите разобраться, а то не как не могу понять в чём тут дело.
Прикреплено изображение
1283.gif

 
 Top
sound Post Id


Полковник


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



Всем спасибо разобрался=)
 
 Top
DiNoZawR Post Id


Рядовой


Сообщений всего: 7
Дата рег-ции: Дек. 2008  



Прошу прощения.
Если не трудно,подскажите, где можно узнать подробнее про Широтно-Импульсную Модуляцию. Желательно попроще.
Или здесь напишите. Просто недавно начал всем этим увлекаться с нуля.
Спасибо.
(Добавление)
Хочу добавить. Мне нужно определять расстояние с помощью ИК диода и фототранзистра. Что для этого нужно (ну помимо самих деталей) и как МК настроить (она еще и двигателями управляет)?
 
 Top
бот_м_16 Супермодератор Post Id



Супермодератор


Сообщений всего: 1033
Дата рег-ции: Окт. 2008  



1)Про ШИМ(и нетолько) читать в Курсе по AVR avr123.nm.ru
2)фототранзистор->ацп только дальность не очень
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



Максимальная частота, с которой любой прибор может реагировать на входной управляющий сигнал - конечна. Если подавать на вход прибора импульсы, частота которых много выше максимальной частоты реакции прибора, он не будет успевать реагировать на них, что (в некотором приближении) равносильно подаче на вход прибора постоянного напряжения определённого уровня.
 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



На приведённом рисунке график зависимости напряжения на входе некоторого прибора от времени.
(Добавление)
Уровень напряжения, о котором идёт речь, будет равен площади импульса, поделённой на период:

(Длительность импульса) * (Амплитуда) / (Период)

Для однозначности используют отношение периода импульса к его длительности. Эта величина называется Скважностью и она полностью характеризует уровень напряжения, моделируемый при помощи ШИМ:

(Скважность) = (Период) / (Длительность импульса)

В англоязычной литературе чаще используют понятие Коэффициента заполнения, который обратно пропорционален скважности:

(Коэффициент заполнения) = (1) / (Скважность)

Из приведённых соотношений видно, что уровень напряжения тем ниже, чем меньше длительность импульса (либо больше длина паузы, либо больше скважность, либо меньше коэффициент заполнения).
(Добавление)
Реализация ШИМ в микроконтроллере может быть программной, либо аппаратной (производитель микроконтроллера заложил в него возможность использования ШИМ, не используя основные вычислительные мощности).

В программном ШИМ, Вы сами следите (в программе) за состоянием счётчиков/таймеров и устанавливаете уровень логической единицы, либо нуля в нужный момент на выбранном выводе.

Аппаратный ШИМ нуждается со стороны программы только в инициализации (задании скважности, либо коэффициента заполнения), после чего микроконтроллер может исполнять программу дальше, а сигнал ШИМ будет поступать на выделенный производителем для этой цели вывод. Подробнее об аппаратном ШИМе можно узнать в datasheet микроконтроллера, по ключу PWM.
Прикреплено изображение
PWM_data_2.gif

(Отредактировано автором: 26 Декабря, 2008 - 00:03:02)

 
 Top
Белый Волк Супермодератор Post Id



Супермодератор


Сообщений всего: 648
Дата рег-ции: Февр. 2007  



Если Вас интересует конкретный уровень напряжения, который Вы хотите моделировать, необходимо помнить, что уровень логического нуля, для цифровых микросхем на основе кремния, составляет примерно 0.5-0.7 В, а уровень логической единицы "(напряжение питания) - 0.5-0.7 В". Данные величины существенны при подсчёте уровня напряжения.
 
 Top
DiNoZawR Post Id


Рядовой


Сообщений всего: 7
Дата рег-ции: Дек. 2008  



Спасибо
 
 Top
Страниц (2): [1] 2 »
« Программирование микроконтроллеров »


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





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