
| Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
PIC контроллеры. Программаторы и первый проект на PIC
|
||
| Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио |
![]() |
|
|
Опции темы |
|
|
#1171 |
|
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46
|
Здравствуйте!
С наступающим всех Новым 2014 годом! Подскажите пожалуйста следующее: подключил к МК ч/з токовый датчик (ACS712 - 20А) электродвигатель на 12В 5А. Питание подаю на него ч/з опторазвязанное реле. Так вот, бывает, что на LCD пропадает индикация (такое впечателени от какой-то помехи при включении двигателя), но сам МК продолжает успешно работать. В чем может быть проблема? |
|
|
|
|
#1172 |
|
Форумец
Сообщений: 94
Регистрация: 07.01.2010
Возраст: 36
|
Здравствуйте, с Наступающим! Подскажите пожалуйста , у меня прогорел микроконтроллер pic 16f что то там дальше . Аппарат не запускается и не подает признаков жизни. Кто сможет помочь откликнитесь. По цене договоримся
|
|
|
|
|
#1175 |
|
Registered User
Сообщений: 173
Регистрация: 10.04.2010
|
есть pic24ep512gp202 2шт новые
70MIPS, DIP, 512KB ROM, 48 KB RAM http://www.microchip.com/wwwproducts...IC24EP512GP202 интересуют? |
|
|
|
|
#1176 | |
|
Форумец
|
Цитата:
|
|
|
|
|
|
#1178 |
|
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46
|
petrd, здравствуйте!
Подскажите пожалуйста, я правильно понимаю, что для DS18B20 можно использовать внешнее питание, например +5В, даже если микроконтроллер работает на +3.3В, подтягиваем шину данных DS18B20 ч/з резистор 4,7кОм к питанию процессора +3.3В и всё? |
|
|
|
|
#1179 |
|
Форумец
|
ИМХО. Да, судя по даташиту можно. Как понял - главное, чтобы напряжение подтяжки не было больше напряжения питания DS-ки, а полученные от такого опуса логические уровни соответствовали уровням работающего с ней устройства.
|
|
|
|
|
#1180 | |
|
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46
|
Цитата:
Не могли бы вы мне поведать/посоветовать вот что: в цикле я опрашиваю DS18B20, который подключен по UTP 5 категории к МК. И вот бывают случаи, когда при очередном опросе датчика, в его памяти? сохранена температура -44С или -38С, хотя реально температура всегда выше 0С. Эти сбои проявляются в основном при понижении температуры, измерямой датчиком. Никакой закономерности я не выявил. Может причиной описанной ситуации быть плохой контакт от ножки МК до DS? |
|
|
|
|
|
#1181 | |
|
Форумец
|
Цитата:
|
|
|
|
|
|
#1182 |
|
Форумец
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 46
|
Спасибо. Да не задействована. Сделал пока так, 20 раз анализирую новое показание, если оно остается в течение этих 20 раз неизменным, только тогда беру его в рассчет. Сейчас работает всё стабильно.
|
|
|
|
|
#1183 |
|
Форумец
Сообщений: 2
Регистрация: 06.09.2015
Возраст: 44
|
Здравствуйте! Не пинайте сильно. Первый опыт с СИ и пиком. Написал вот такой код в качестве первого проекта для 16f1823 (таймер выключения обогрева заднего стекла). Код рабочий, но хотелось бы понять работу с прерываниями и написать обработчик кнопки через прерывания. А в это время курю даташит и Кернигана)))
Код:
bit oldstate; // Old state flag
unsigned schet; // переменная счетчика
//============================================================
void buttonn () { // Подпрограмма обработки кнопки
if (Button(&PORTA, 0, 1, 1)) { // Detect logical one
oldstate = 1; // Update flag
}
if (oldstate && Button(&PORTA, 0, 1, 0)) { // Detect one-to-zero transition
LATC0_bit = ~LATC0_bit; // Invert PORTC
oldstate = 0; // Update flag
} }
//=============================================================
void main() // Основная программа
{
ANSELA = 0; // Configure AN pins as digital I/O
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
TRISA = 0xFF; // set PORTA as input
TRISC = 0x00; // Configure PORTC as output
PORTC = 0b00000001; // Initial PORTC value (RC1=1)
oldstate = 0;
do { // Вечный цикл do --> while
buttonn() ; // проверка состояния кнопки
if (LATC0_bit == 0) { // если на выходе RC0 лог 0, то
Delay_ms(10); // wait for 10 millisecond
schet++ ; // прибавляем к счетчику 1
LATC2_bit = ~LATC2_bit; // для наглядности моргаем RC2
if (schet > 12000) { // если счетчик больше 12000 ( =16 мин.), то
LATC0_bit = 1 ; // присваиваем RC0 лог. 1
schet = 0 ; // обнуляем счетчик
}
}
if (LATC0_bit == 1) { // если RC0 = 1, то
schet = 0; // обнуляем счетчик
}
}
while(1) ;
}
|
|
|
|
|
#1184 |
|
Форумец
|
Классика обработчика кнопок, код от tester'a
http://www.microchip.su/showpost.php...5&postcount=22 http://www.microchip.su/showpost.php...9&postcount=29 |
|
|
|
|
#1185 |
|
Кондиционеры
Сообщений: 448
Регистрация: 17.11.2003
Возраст: 43
|
Добрый день!
Если тема не померла еще ))) Есть электронный замок от сейфа на pic16lf628a. Коды, понятное дело, утеряны (иначе бы не писал). Необходимо восстановить работоспособность замка (сейф открыт, замок демонтирован) |
|
|
|
|
#1186 |
|
Форумец
|
Как замок-то работал? Схема есть? Если нет, то придется восстанавливать схему и по ней заново писать программу замка. Это будет денег стоить. Смысл есть?
|
|
|
|
|
#1187 |
|
Кондиционеры
Сообщений: 448
Регистрация: 17.11.2003
Возраст: 43
|
Замок работает и сейчас.
Вопрос в другом, никто не помнит не мастер-пароль, ни пароль пользователя. Схемы нет, но она там элементарная (фото прилагаю, также вложу инструкцию) Может можно просто прочитать программу и посмотреть что там внутри? Понятное дело, будет стоить денег, вопрос насколько это будет разумно. Может проще будет поставить новый замок ) Заранее спасибо за ответы! |
|
|
|
|
#1189 |
|
Форумец
|
Прочитать? Надо пробовать, но это ничего не даст, прошивка закрыта, 99,9%. Если есть есть возможность приобрести новый замок, то надо ставить новый. Это самое правильное решение и выйдет по-любому дешевле.
|
|
|
|
|
#1191 |
|
Registered User
Сообщений: 6
Регистрация: 19.02.2016
|
С последующей страницей пропало обучение ! Так классно начиналось для новичка, именно то что нужно без лишнего ... И текст программы был понятен и пояснения каждой строки зачем и для чего . Читал радовался , все понимал, получалось на практике . Но увы чем дальше , тем пропали комментарии , стали решать более частные конкретные задачи ! Может подскажите тогда где и как продолжить познавать азы ШИМ, АЦП и т.д. именно на уровне начальном ! Как работать с LCD ? Прервывания ?
|
|
|
|
|
#1192 | |
|
Форумец
|
Цитата:
|
|
|
|
|
|
#1193 |
|
Registered User
Сообщений: 6
Регистрация: 19.02.2016
|
Хотелось бы с шиной CAN поработать , получать и передавать сообщения ! Мне не важно какой контроллер изучать -главное стартануть, много уроков
по АРДУИНО на ютюбе , придётся на нем учиться(хотя программатор для пиков купил уже!) , т.к. по PICам ничего подобного нет ! Если и есть то для новичка сложновато !!! Последний раз редактировалось Vdmit; 14.03.2016 в 16:14. |
|
|
|
|
#1194 |
|
Registered User
Сообщений: 6
Регистрация: 19.02.2016
|
Пришлось начинать , учиться на древнем PIC12f675 (просто их много валяется без дела) Хотел типа контролера ДХО на авто замутил .
кое что получается там ноги зажигать , считывать с ног ! Вот хотелось программный ШИМ(встроенного нет) . Не могли бы помочь сконфигурировать таймер и организовать импульсы на ноге , например GP3 , чтобы диод в пол накала светился ! кроме этого пока на форумах ничего не нашел OPTION_REG = 0x87; // 66,304 ms INTCON.T0IE=1; INTCON.GIE=1; |
|
|
|
|
#1195 |
|
Форумец
Сообщений: 10
Регистрация: 22.11.2015
|
Vdmit по can могу подсказать , есть наработки , анализатор can
|
|
|
|
|
#1196 | |
|
Форумец
|
Цитата:
С GP3 не получится, он может быть только входом. В остальном примерно, так. На железе не смотрел, поэтому если, что ..... Код:
unsigned short Period, Pulse;
void interrupt ()
{
static unsigned short count = 0;
if(T0IF_bit)
{
count++;
if(count < Period){
if (count < Pulse)
GP2_bit = 1;
else
GP2_bit = 0;
}
else {
count = 0;
GP2_bit = 1;
}
T0IF_bit = 0;
}
}
void main() {
ANSEL = 0x00; //все выводы делаем цыфровыми
CMCON = 0x07; // отключаем компаратор
TRISIO2_bit = 0;// будет выходом
GP2_bit = 0;
OPTION_REG = 0x88; // TMR0 от внутренних тактов, без прескалера
T0IE_bit = 1; // разрешить прерывания от TMR0
GIE_bit = 1; // разрешить глобальное прерывание
Period = 8; // при таких числах скважность будет 50%
Pulse = 4;
for(;;);
}
|
|
|
|
|
|
#1198 |
|
Форумец
|
|
|
|
|
|
#1199 |
|
Registered User
Сообщений: 6
Регистрация: 19.02.2016
|
Не посчитайте за наглость , но человек , который хочет научиться превосходит все рамки приличия ! Изучаю самостоятельно, любая такая информация очень ценна . Хотел бы от Вас ещё такой же урок с АЦП . Какой-нибудь незамысловатый пример от уровня напряжения на какой-нибудь ноге . Спасибо !
|
|
|
|
|
#1200 |
|
Registered User
Сообщений: 6
Регистрация: 19.02.2016
|
Буду очень признателен , только пока не знаю что спросить ! Я новичок в этом деле, пришел мне АРДУИОНО с шилдом CAN . Для начала попробую сконфигурировать и подключить в авто Ниссан Теане к салонной CAN шине, для начала посмотрю что будет мне приходить на COM порт ПК . Анализатор- это прога? Полезно было бы уже приступить с ней знакомиться ! Буду рад любой вашей информации в плане CAN.
|
|
|