Перейти к содержанию

Мигание светодиода на pic12f629, работает не стабильно


Гость vsevolod-s10

Рекомендуемые сообщения

Добрый день! Делаю на MPLAB на компиляторе С программу - мигание светодиода. Программирую на PICkit2. Не работает. Самое интересное что все зависит от того - поднесен палец к микроконтроллеру, или нет. Если пальца нет то оно или не работает вообще или вдруг начинает мигать, если палец поднесен - то горит светодиод.

Вот видео: (без пробелов!!!)

htt p: //vk . com/vid eo96441 850_1710 48583

h ttp: //vk . com/vide o9644 1850_17098 0408

 

Вот код на С:

 

#include <pic.h>
#include <pic12f629.h>
#include "delay.c"
__CONFIG(0x3FB4);

void main(void)
{

TRISIO = 0x0C;
CMCON = 0x1F;
INTCON = 0;
GPIO = 0;
GP0 = 1;
while(1)
{
DelayMs(20);
if (GP0==1) GP0 = 0;
if (GP0==0) GP0 = 1;
}
}

 

Заранее спасибо!

Изменено пользователем vsevolod-s10
Ссылка на комментарий
Поделиться на другие сайты

Самое интересное что все зависит от того - поднесен палец к микроконтроллеру, или нет.
Получилось сенсорное управление :smile:

А если серьёзно, на этом видео трудно что-то разгледеть, но чутьё мне подсказывает, что блокировочный конденсатор 0.1μF в питании решит проблему. Прямо на ножки питания припаять.

Ссылка на комментарий
Поделиться на другие сайты

Ничего не понимаю в микроконтроллерах, но тут как говорится "и ежу понятно" что проблема в правильности электрического подключения микроконтроллера. Надеюсь провода там не просто прикручены а припаяны? Между ножками питания обязательно конденсатор керамический должен стоять примерно на 0,1μF

Рисуйте схему и тут покажите что и как подключено.

Ссылка на комментарий
Поделиться на другие сайты

Схема

post-7203-1419174298_thumb.jpg

 

Программа с комментариями

 

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

#include <pic.h>

#include <pic12f6x.h>

#include "C:\Program Files\HI-TECH Software\PICC\9.70\samples\LCDemo\delay.c"

__CONFIG(0x3FB4);

 

void main(void)

{

 

TRISIO = 0x0C;

CMCON = 0x1F;

INTCON = 0;

GPIO = 0;

GPIO0 = 1;

while(1)

{

if (GPIO0==0) GPIO0 = 1; // Начало импульса

DelayMs(500); // длительность импульса

if (GPIO0==1) GPIO0 = 0; // Окончание импульса, начало паузы

DelayMs(500); // Длительность паузы

}

}

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

 

Период 1 сек, диод моргает!

Ссылка на комментарий
Поделиться на другие сайты

http ://cs623928.vk.me/v623928850/1066c/EDK138jcTFQ.jpg

(без пробелов!!!)

Вот схема уже с подключенным конденсатором - 0.1uf, раньше была без него, с ним не работает( вообще не горит( микроконтроллер я перепрограммировал кодом if33'a. Может я не правильно расположил конденсатор?

Изменено пользователем vsevolod-s10
Ссылка на комментарий
Поделиться на другие сайты

Конденсатор надо подпаять непосредственно к ножкам 1 и 8.

Емкость может быть от 0,1 μF до 100 μF и выглядят вот так. Припаиваются своими выводами прямо к микросхеме.

post-7203-1419191792_thumb.jpg post-7203-1419191802.jpg

 

Вот программа и прошивка

Программа.rar

Прошивка.rar

Схема

post-7203-1419192877_thumb.png

Резисторы R1 и R2 могут иметь величину от 1ком до 10ком

 

Должно все получиться!

Изменено пользователем if33
Ссылка на комментарий
Поделиться на другие сайты

Сева, добрый совет: купите небольшую макетную платку и панельку для микроконтроллера.

post-2832-1419195563_thumb.jpgpost-2832-1419195568.jpg

Работать станет гораздо удобнее. Можно быстро перетыкать контроллер из программатора в макет и обратно. Не будет кучи соплей, все детали распаиваются на плате, быстро, компактно и аккуратно. Страшно удобная вещь.

 

post-2832-1419195815_thumb.jpg

Такой конденсатор (очевидно, из какого-то набора "умелые руки", или типа того) малопригоден для реального применения в радиолюбительстве, именно из-за того, что он установлен в здоровенную пластиковую фигню с контактами. Для работы на высоких частотах (а микроконтроллеры работают именно на высоких частотах) приходится учитывать много вещей, о которых и не подозревал. В частности, любой проводник обладает индуктивностью, и чем он длиннее, тем индуктивность больше. Именно поэтому блокировочные конденсаторы не подключают длинными проводами, а припаивают максимально близко, чтобы не плодить в схеме лишние индуктивности, которые там не нужны.

 

Именно поэтому такой маленькийpost-2832-1419196308_thumb.jpg конденсатор, да ещё установленный максимально близко к микроконтроллеру, тут куда более уместен.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...