Большой Воронежский Форум

Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел.
Вернуться   Большой Воронежский Форум » Компьютеры и все, что с ними связано » »Радиолюбитель
Программирование микроконтролеров,ремонт аудио/видео/бытовой техники,полезные устройства для дома,телефония, обсуждение статей журнала Радио

Ответ
 
Опции темы
Старый 11.11.2011, 14:48   #871   
Форумец
 
Сообщений: 29
Регистрация: 10.10.2003

Serj вне форума Не в сети
Всем привет, нужна помощь владельца PICkit 2 - прошить устройство.
есть инструкция
http://autoterm.ru/download/programmer_pickit_2.pdf
спец программа для прошивки
http://autoterm.ru/download/programing_bi_5.zip
прошивка
http://autoterm.ru/download/b5-1014-2014.zip
и коньяк (или какие другие ништяки)

девайс установлен на машине, так что прошиватся надо будет с ноутбука
если нету - я со своим приеду.
связь - лс.
  Ответить с цитированием
Старый 15.11.2011, 12:07   #872   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Подскажите пожалуйста, для PIC 16F877A подцепил кварцевый резонатор на 4MHz и по 30пФ конденсаторы - схема работает стабильно, попробовал увеличить частоту до 16MHz (маркировка кварца: D160G0I) - схема при подаче питания не запускается, но при программировании PICKit2 с включенным питанием на схему - запускается, конденсаторы оставил для нового кварца те же по 30пФ, правильно ли я понимаю, что необходимо пробовать подбирать другие конденсаторы? Есть готовое решение чтобы запустить схему, кварц купил новый. Смущает то, PIC с ним работает после программирование, когда на схему подано питание ч/з PICKit2.
  Ответить с цитированием
Старый 15.11.2011, 12:26   #873   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
Подскажите пожалуйста, для PIC 16F877A подцепил кварцевый резонатор на 4MHz и по 30пФ конденсаторы - схема работает стабильно, попробовал увеличить частоту до 16MHz (маркировка кварца: D160G0I) - схема при подаче питания не запускается, но при программировании PICKit2 с включенным питанием на схему - запускается, конденсаторы оставил для нового кварца те же по 30пФ, правильно ли я понимаю, что необходимо пробовать подбирать другие конденсаторы? Есть готовое решение чтобы запустить схему, кварц купил новый. Смущает то, PIC с ним работает после программирование, когда на схему подано питание ч/з PICKit2.
В битах конфигурации режим HS для 16 МГц поставили?
  Ответить с цитированием
Старый 16.11.2011, 03:07   #874   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
В битах конфигурации режим HS для 16 МГц поставили?
Да, конечно. Сегодня попробую конденсаторы подобрать...
Понял, что схема запускается после MCLR Reset - после программирования PIC - не убирая галку на питание схемы +5В - ставишь галочку и затем снимаешь с MCLR - и схема запускается. В чем может быть причина такого поведения?

P.S.
1). Интересно, насколько близко необходимо располагать кварцевый резонатор от самой микросхемы или нет разницы?
2). При какой частоте работы PIC осуществляется влияние дорожек на плате?
3). Или это не мой случай?

Последний раз редактировалось Teeen; 16.11.2011 в 05:08.
  Ответить с цитированием
Старый 16.11.2011, 12:57   #875   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
Да, конечно. Сегодня попробую конденсаторы подобрать...
Понял, что схема запускается после MCLR Reset - после программирования PIC - не убирая галку на питание схемы +5В - ставишь галочку и затем снимаешь с MCLR - и схема запускается. В чем может быть причина такого поведения?

P.S.
1). Интересно, насколько близко необходимо располагать кварцевый резонатор от самой микросхемы или нет разницы?
2). При какой частоте работы PIC осуществляется влияние дорожек на плате?
3). Или это не мой случай?
Мой обычный комплект - кварц 20 МГц и конденсаторы 15-22 пФ (SMD 0805 или выводные К10-17) расстояние от PIC 10-15 мм. Не помню даже, чтобы были подобные проблемы.

При быстром запуске использую такие правила.
1. Все выводы питания PIC должны быть подключены (для 877А их две пары, у других может быть и больше) .
2. На выводах питания обязательно стоит керамика - 0,1 мкФ (электролит по обстоятельствам).
3. MCLR (если он внешний) подтянут через 10 кОм к "+" питания.
После этого проблем с запуском обычно нет.

Почитайте - может тут ответ для себя найдете http://www.microchip.su/showthread.p...highlight=MCLR

Последний раз редактировалось petrd; 16.11.2011 в 13:03. Причина: ссылка
  Ответить с цитированием
Старый 17.11.2011, 05:55   #876   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Спасибо, буду пробовать... А вот конденсаторы в нашем городке от 15 до 25пФ не продают... город маленький. Но я знаю где взять
Что значит
Цитата:
Сообщение от petrd Посмотреть сообщение
3. MCLR (если он внешний)
- я так и сделал.

Для PIC16F877A MCLR/VPP - 1 ножка.

  Ответить с цитированием
Старый 18.11.2011, 08:10   #877   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
petrd, подскажите пожалуйста, мне на будущее, как правильно подключить выход микроконтроллера к нагрузке больше 100мА ? Просто ч/з транзистор достаточно будет. Выход МК будет использоваться как ключ.
  Ответить с цитированием
Старый 18.11.2011, 08:43   #878   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
как правильно подключить выход микроконтроллера к нагрузке больше 100мА ? Просто ч/з транзистор достаточно будет.
Не просто через транзистор, а через транзисторный ключ, собранный по всем правилам электроники.
  Ответить с цитированием
Старый 21.11.2011, 11:25   #879   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Вообщем решил проблему: как я понял программа начинает выполняться раньше, знаний не хватает выразить мысль, чем либо кварцевый резонатор "выйдет" на рабочую частоту, либо МК полностью инициализируется?
В AN607 "Power-up Trouble Shooting" имеется TABLE 2: TIME-OUT IN VARIOUS SITUATIONS (TYPICAL)
Oscillator Configuration Power-up Wake-up from SLEEP
XT, HS, LP(1) 18 ms 18 ms
которая меня натолкнула на мысль выставить бит конфигурации "Power Up Timer" = ON, но этой задержки не хватило, также в процедуру инициализации добавил:
void Init(){
delay_ms(1); // задержка выполнения программы в 1мс
...

и все заработало, теперь вопрос, что я сделал?
Повторюсь, с кварцем на 4 Мгц все работало замечательно...
  Ответить с цитированием
Старый 21.11.2011, 12:05   #880   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Serj, а вы откуда? У меня есть такой программатор.
  Ответить с цитированием
Старый 23.11.2011, 11:01   #881   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
petrd, прокомментируйте пожалуйста пост №879
  Ответить с цитированием
Старый 23.11.2011, 12:29   #882   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
petrd, прокомментируйте пожалуйста пост №879
ИМХО. Поиски черной кошки в темной комнате, которой к тому же в ней нет.

1. Устройство от чего питается? PICKit2 может отдавать не больше 25 мА.
2. Смотрите, что Вы там накодили.
  Ответить с цитированием
Старый 24.11.2011, 06:20   #883   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
ИМХО. Поиски черной кошки в темной комнате, которой к тому же в ней нет.

1. Устройство от чего питается? PICKit2 может отдавать не больше 25 мА.
2. Смотрите, что Вы там накодили.
1. Пробовал от компьютерного БП - эффект тот, же.
2. Мой код:
// Контроллер: PIC16F877A, датчик t: DS18B20, LCD: 16х2 с контроллером HD44780, Bipolar Step-motor
// Среда программирования: MikroC PRO for PIC v.4.60.0.0
// Автоматическое управление воздушной заслонкой бензинового генератора...
// при запуске анализируется текущая t, если она < уставки (SetTemp), то закрываем заслонку
// иначе открываем воздушную заслонку (регулируется кол-вом полных оборотов ротора и
// равна константе KolOborotov.
// Автор: я
// Дата: 16_02_2011г.
// Версия: 1.0.0
// Определение констант
// //Разрешение DS18B20 //Смещение t в C
const unsigned short TEMP_RESOLUTION = 12, OFFSET = 2;
const unsigned short FaseMax=4; // кол-во табличных значений для Step_Motor
//const unsigned int KolOborotov=FaseMax*100;// кол-во оборотов двигателя до момента полного открытия заслонки

// Определение переменных
// кол-во оборотов двигателя до момента полного открытия заслонки
unsigned int KolOborotov, CurOborotov;
unsigned short SetTemp, old_SetTemp;
unsigned short counter, curFase;
bit state, RotateForOpen;
signed short int intMinus;
char *text = "000";
char *set = "000"; // НЕ УДАЛЯТЬ! появится 4-ый знак 0 в уставки если убрать.
char *ust = "000";
unsigned temp;

// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

// подпрограмма обработки прерывания
void interrupt(){
if(INTCON.T0IF){
switch (RotateForOpen){
case 1: { // вращение влево
curFase++; // меняем последовательность включения обмоток двигателя
if (curFase>FaseMax)
{curFase=1;} // задействуем первую обмотку двигателя
};break;// end case
case 0: { // вращение вправо
curFase--; // меняем последовательность включения обмоток двигателя
if (curFase<1)
{curFase=4;} // задействуем последнюю обмотку двигателя
};break;
}// end switch
CurOborotov++; // кол-во оборотов, совершенных ротором
INTCON.T0IF=0;
}// end INTCON.T0IF
}// end interrupt

// Процедура вращения двигателя,
// если Open=0 - закрываем заслонку
// если Open=1 - открываем заслонку
void RotateMotor(unsigned short int Open){
CurOborotov=0; // текущие обороты ротора
RotateForOpen=Open; // задаем направление для вращения ротора Step-motor// задаем вращение
if (Open){curFase=4;}else{curFase=1;}
// ОТКРЫВАЕМ ИЛИ ЗАКРЫВАЕМ ЗАСЛОНКУ
while (CurOborotov<KolOborotov){
switch (curFase){
case 1: {PORTC=0b00001001;};break; //17&18 pins PIC16F877A
case 2: {PORTC=0b00000101;};break; //
case 3: {PORTC=0b00000110;};break;
case 4: {PORTC=0b00001010;};break;
}// end switch
// RA4_bit=0 - кнопка нажата, RA4_bit=1 - кнопка отпущена
// Если при закрывании заслонки была нажата кнопка, то останавливаем двигатель
if (!RA4_bit&!Open){
Eeprom_Write(0x0F,CurOborotov); // запоминаем кол-во оборотов ротора до нажатия кнопки
delay_ms(50);
CurOborotov=KolOborotov;
} // останавливаем ротор!
}// end while
PORTC=0; // Снимаем напряжение с двигателя!!!
}// end RotateMotor

void Display_Temperature(unsigned int temp2write) {
const unsigned short RES_SHIFT = TEMP_RESOLUTION - 8;
char temp_whole;
unsigned int temp_fraction;
// преобразование отрицательной температуры
if (temp2write & 0x8000) {
intMinus=-1;
Lcd_Chr(1,3,'-');
temp2write = ~temp2write + 1;
}
else{
intMinus=1;
Lcd_Chr(1,3,' ');}
// извлечение целой части
temp_whole = temp2write >> RES_SHIFT ;
// преобразование целой части температуры в символы
text[0] = temp_whole/100 + 48; // извлечение сотен
text[1] = (temp_whole/10)%10 + 48; // извлечение десятков
text[2] = temp_whole%10 + 48; // извлечение единиц
// извлечение и преобразование дробной части
temp_fraction = temp2write << (4-RES_SHIFT);
temp_fraction &= 0x000F;
temp_fraction *= 625;
// преобразование дробной части в символы
text[4] = temp_fraction/1000 + 48; // extract thousands digit
text[5] = (temp_fraction/100)%10 + 48; // extract hundreds digit
text[6] = (temp_fraction/10)%10 + 48; // extract tens digit
text[7] = temp_fraction%10 + 48; // extract ones digit
// вывод температуры на ЖКИ
Lcd_Out(1, 4, text);
//Вывод уставки на ЖКИ
ust[0]=SetTemp/100+48;
ust[1]=(SetTemp/10)%10+48;
ust[2]=SetTemp%10+48;
// обрезаем дробную часть уставки
ust[3]=0;
ust[4]=0;
Lcd_Out(1,12,ust);

//if (RA3_bit){Lcd_Out(2, 10, "CLOSE");}else{Lcd_Out(2, 10, "OPEN ");}//08_11_2011
if (!RA4_bit){Lcd_Out(2, 10, "CLOSE");}else{Lcd_Out(2, 10, "OPEN ");}

intMinus*=temp_whole;
switch (state){
case 0:{
// если уставка выше
if (SetTemp>intMinus){PORTA=8;}// то включение
else{ // если нет
PORTA=0; // выключение
state=1;
}
};break;
case 1:{
// если уставка выше
if (SetTemp-OFFSET>intMinus){
PORTA=8; // то включение
state=0;}
else{PORTA=0;} // выключение
};break;
}// end switch (state)
}// end Display_Temperature

void Init(){
delay_ms(1); // задержка перед выполнением программы! --Не убирать! Нужно подбирать если программа не запускается!

ADCON1=6;
TRISA=0b11110111;
TRISC=0;
PORTC=0; // двигатель СТОП!
//OPTION_REG = 0x87; // настройка TMR0, прерывания будут каждые 66,304 ms - в HEX
OPTION_REG = 0b10000111; // настройка TMR0, прерывания будут каждые 66,304 ms - в Binary
INTCON.T0IE=1; // разрешили прерывания по переполнению TMR0
INTCON.GIE=1; // разрешили все прерывания
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Очистить дисплей
Lcd_Cmd(_LCD_CURSOR_OFF); // Курсор не отображать
Lcd_Out(1, 1, "t="); // вывод t=
Lcd_Out(1,8,"C;u="); // вывод C;u=
Lcd_Chr(1,7,223); // вывод символа точки и "С" как единицы измеренияLcd_Chr(1,16,'C');
Lcd_Chr(1,15,223); // вывод символа точки и "С" как единицы измеренияLcd_Chr(1,16,'C');
Lcd_Chr(1,16,'C'); // вывод С
Lcd_Out(2, 1, "DUMPER = "); // вывод DUMPER =
SetTemp=Eeprom_Read(0); // читаем уставку из EEPROM
delay_ms(50);
if (SetTemp>125){
SetTemp=25;
old_SetTemp=SetTemp;
Eeprom_Write(0,SetTemp); // если больше 125 градусов сохраняем в EEPROM t=25C
delay_ms(50);
} //end if (SetTemp>125)
} // end Init()

void main() {
unsigned short iDO, KolClose, KolOpen;
Init(); // Инициализируем LCD и читаем уставку

KolOborotov=Eeprom_Read(0x0F);// читаем кол-во оборотов ротора из EEPROM
delay_ms(50);
if (KolOborotov < 10){
KolOborotov=FaseMax*100;
Eeprom_Write(0x0F,KolOborotov);
delay_ms(50);
}

iDO=0; // счетчик, играет роль задержки для измерения t, а потом уже двигаем заслонку
KolClose=1; // разрешаем закрытие заслонки только один раз (если не сработает кнопка)
KolOpen=1; // разрешаем открытие заслонки только один раз (если не сработает кнопка)
//--- главный цикл
do {
//--- чтение температуры из DS18B20
Ow_Reset(&PORTA,2); // сигнал сброса
Ow_Write(&PORTA,2,0xCC); // команда SKIP_ROM
Ow_Write(&PORTA,2,0x44); // команда CONVERT_T
Delay_us(120);
Ow_Reset(&PORTA,2);
Ow_Write(&PORTA,2,0xCC); // команда SKIP_ROM
Ow_Write(&PORTA,2,0xBE); // команда READ_SCRATCHPAD
temp = Ow_Read(&PORTA,2);
temp = (Ow_Read(&PORTA,2) << 8) + temp;
//--- чтение температуры из DS18B20

if (Button(&PORTA, 0,1,0)){ // нажимаем кнопку на RA0 ("уставка выше")
SetTemp++;
if (SetTemp>125){SetTemp=125;}}
if (Button(&PORTA, 1,1,0)){ // нажимаем кнопку на RA1 ("уставка ниже")
SetTemp-- ;
if (setTemp==255){SetTemp=0;}}
if (old_SetTemp!= SetTemp) { // если было изменение уставки
Eeprom_Write(0,SetTemp); // то сохраняем в EEPROM новое значение уставки
delay_ms(50);
old_SetTemp = SetTemp; // и сохраняем для текущей работы
}
//--- форматирование, вывод на ЖКИ температуры и уставки, включение-выключение
Display_Temperature(temp);
Delay_ms(500);

//RA3_bit=0, если измеренная t>t уставки
//RA3_bit=1, если измеренная t<t уставки
//RA4_bit=0, если заслонка закрыта (кнопка замкнута на массу)
//RA4_bit=1, если заслонка открыта (кнопка отпущена - высокий уровень)
iDO++;
if (iDO>2){
if (!RA3_bit&!RA4_bit&KolOpen<2){
RotateMotor(1); // открываем заслонку
KolClose=1; // разрешаем закрыть заслонку, т.к. она 100% открыта
KolOpen=2;
}// end if
// Ввели переменную
else if (RA3_bit&RA4_bit&KolClose<2){
RotateMotor(0); // закрываем заслонку
KolClose=2; // если вдруг кнопка не замкнулась на массу, то чтобы двигатель
KolOpen=1;
}// end else if // не пытался бесконечно это делать - останавливаем его
iDO=5;}// end if iDO
}// end do

while(1);
}// end main
  Ответить с цитированием
Старый 24.11.2011, 21:37   #884   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
1. Пробовал от компьютерного БП - эффект тот, же.
2. Мой код......
Напишите моргалку с этим кварцем, если работает, то затем свой код по частям подставляйте.
  Ответить с цитированием
Старый 08.12.2011, 15:44   #885   
Форумец
 
Сообщений: 3
Регистрация: 08.12.2011

alex56 вне форума Не в сети
непонятно

petrd раскажите пожалуста по подробние что это CMCON=7; какой её смысл
  Ответить с цитированием
Старый 08.12.2011, 16:16   #886   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от alex56 Посмотреть сообщение
petrd раскажите пожалуста по подробние что это CMCON=7; какой её смысл
Один вывод контроллера может быть связан с несколькими модулями (АЦП, компратор, USART, цифровой I/O и т.д.), поэтому при включении контроллера нужно определить в каком режиме будут использоваться соответствующие выводы. В данном случае речь идет о компараторе. При включении питания соответствующие выводы, связанные с компаратором к нему и подключаются, а нам они будут нужны как цифровые I/O. Команда CMCON=7 в данном случае переключает выводы с компаратора на функцию цифровых входов-выходов.
  Ответить с цитированием
Старый 09.12.2011, 08:36   #887   
Форумец
 
Сообщений: 3
Регистрация: 08.12.2011

alex56 вне форума Не в сети
благодарю

Цитата:
Сообщение от petrd Посмотреть сообщение
Один вывод контроллера может быть связан с несколькими модулями (АЦП, компратор, USART, цифровой I/O и т.д.), поэтому при включении контроллера нужно определить в каком режиме будут использоваться соответствующие выводы. В данном случае речь идет о компараторе. При включении питания соответствующие выводы, связанные с компаратором к нему и подключаются, а нам они будут нужны как цифровые I/O. Команда CMCON=7 в данном случае переключает выводы с компаратора на функцию цифровых входов-выходов.
спасибо я просто на страничке 2 не могу разобраться что к чему с 628 я делаю в норме а когда меняю на 84 проблема выхода у контролеров вроде одинаковы теперь кое что ясно будем дальше разбиратьсяю)))
  Ответить с цитированием
Старый 09.12.2011, 08:41   #888   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от alex56 Посмотреть сообщение
спасибо я просто на страничке 2 не могу разобраться что к чему с 628 я делаю в норме а когда меняю на 84 проблема выхода у контролеров вроде одинаковы теперь кое что ясно будем дальше разбиратьсяю)))
У PIC16F84A нет компаратора, поэтому и регистра CMCON тоже нет.
  Ответить с цитированием
Старый 09.12.2011, 10:42   #889   
Форумец
 
Сообщений: 3
Регистрация: 08.12.2011

alex56 вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
У PIC16F84A нет компаратора, поэтому и регистра CMCON тоже нет.
PIC16F84A у меня их целых 5 штук
поэтому я всё на него научусь медведей в цирке и то учат я же не хуже
спасибо тебе большое petrd я читаю
чьёто не хочу мне свое надо а готовое проще купить
  Ответить с цитированием
Старый 14.12.2011, 04:11   #890   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Здравтсвуйте petrd!
Подскажите пожалуйста направление...
Хочу связать PIC+GSM для удаленного контроля темературы в помещении, если температура достигла заданного минимального порога - схема должна включать обогреватель (сделаю без проблем) и оповещать меня об этом посредством SMS, при достижении выше минимальной на 2-5 градусов - выключать обогрвеватель и также оповещать. Дополнительно хочу - удаленно (с помощью SMS) управлять включением данного обогревателя независимо от температуры в помещении.
Что у меня есть: фактически рабочий проект по заданию минимальной и дельты в сторону максимальной температуры + LCD, где все это отображается, теперь хочется прикрутить GSM-модуль (какой проще?) и поэкспериментировать с его работой. Т.е. хотя бы для начала - при достижении min температуры слать сгенерированное sms на мой номер.
  Ответить с цитированием
Старый 14.12.2011, 07:12   #891   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
Здравтсвуйте petrd!
Подскажите пожалуйста направление...
Хочу связать PIC+GSM для удаленного контроля темературы в помещении, если температура достигла заданного минимального порога - схема должна включать обогреватель (сделаю без проблем) и оповещать меня об этом посредством SMS, при достижении выше минимальной на 2-5 градусов - выключать обогрвеватель и также оповещать. Дополнительно хочу - удаленно (с помощью SMS) управлять включением данного обогревателя независимо от температуры в помещении.
Что у меня есть: фактически рабочий проект по заданию минимальной и дельты в сторону максимальной температуры + LCD, где все это отображается, теперь хочется прикрутить GSM-модуль (какой проще?) и поэкспериментировать с его работой. Т.е. хотя бы для начала - при достижении min температуры слать сгенерированное sms на мой номер.
1. Какой-нибудь пожилой GSM телефон с RS232, которым можно управлять AT командами.
2. SIM900 и т.д.
  Ответить с цитированием
Старый 15.12.2011, 08:15   #892   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
Цитата:
Сообщение от petrd Посмотреть сообщение
1. Какой-нибудь пожилой GSM телефон с RS232, которым можно управлять AT командами.
2. SIM900 и т.д.
Это понятно, мне интересна последовательность (блочность) программирования PIC, т.е. сначала делаем связку этого с этим, затем и т.д. ?
Т.е. как это должно выглядеть на пальцах (просто технология), тонкости как именно не нужны.
Просьба большая напишите пожалуйста.

Забыл написать: 1 вариант не нравится, только второй. Как?

petrd Я правильно понимаю: берем PIC с встроенным UART и шлем/принимаем команды в/из GSM модуль(я) и все?

Последний раз редактировалось Teeen; 15.12.2011 в 11:29.
  Ответить с цитированием
Старый 19.12.2011, 14:29   #893   
Сижу, курю
 
Аватар для zver-diman
 
Сообщений: 152
Регистрация: 23.03.2007
Возраст: 39

zver-diman вне форума Не в сети
Подскажите где в Воронеже купить PICKIT2?
  Ответить с цитированием
Старый 20.12.2011, 06:55   #894   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от Teeen Посмотреть сообщение
petrd Я правильно понимаю: берем PIC с встроенным UART и шлем/принимаем команды в/из GSM модуль(я) и все?
Да.

Цитата:
Сообщение от zver-diman
Подскажите где в Воронеже купить PICKIT2?
Придти и купить в Воронеже вряд ли получится. Или под заказ или с рук или самодельный.
  Ответить с цитированием
Старый 20.12.2011, 16:21   #895   
Сижу, курю
 
Аватар для zver-diman
 
Сообщений: 152
Регистрация: 23.03.2007
Возраст: 39

zver-diman вне форума Не в сети
Тока что купил в магазине Радио Хит, как не странно был в наличии, цена чуть меньше 2000р
  Ответить с цитированием
Старый 20.12.2011, 16:43   #896   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от zver-diman Посмотреть сообщение
Тока что купил в магазине Радио Хит, как не странно был в наличии, цена чуть меньше 2000р
Поздравляю!
  Ответить с цитированием
Старый 20.12.2011, 17:01   #897   
Сижу, курю
 
Аватар для zver-diman
 
Сообщений: 152
Регистрация: 23.03.2007
Возраст: 39

zver-diman вне форума Не в сети
Научите меня им пользоваться

В том смысле что есть низковольтное программирование, высоковольтное, debug?
Нужно шить и дебагить PIC18F452
  Ответить с цитированием
Старый 20.12.2011, 18:19   #898   
Форумец
 
Сообщений: 1,525
Регистрация: 19.02.2009
Возраст: 52
Записей в дневнике: 1

petrd вне форума Не в сети
Цитата:
Сообщение от zver-diman Посмотреть сообщение
Научите меня им пользоваться

В том смысле что есть низковольтное программирование, высоковольтное, debug?
Нужно шить и дебагить PIC18F452
http://pickit2.ru/doku.php/%D1%80%D1...%D1%8F.pickit2

Смотрите, что не поймете спросите.
  Ответить с цитированием
Старый 20.12.2011, 18:41   #899   
Сижу, курю
 
Аватар для zver-diman
 
Сообщений: 152
Регистрация: 23.03.2007
Возраст: 39

zver-diman вне форума Не в сети
Спасибо, читаю.
  Ответить с цитированием
Старый 29.12.2011, 04:09   #900   
Форумец
 
Сообщений: 88
Регистрация: 04.02.2011
Возраст: 44

Teeen вне форума Не в сети
petrd, здравствуйте и с наступающим Новым годом!
Подскажите пожалуйста, можно порты TXD и RXD модуля http://www.olimex.com/dev/pdf/OTHER/MOD-GSM.pdf соединить напрямую с портами PIC без использования промежуточной микросхемы MAX232 например? И будет достаточно этих 2-ух портов и общей земли для передачи сигналов на MOD-GSM и обратно в PIC?
PIC16F877A с аппартаным USART.
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind