-
Сообщения
-
Можно просто приклеить к корпусу джакузи изнутри.
-
Можно. Часто без паяльника. Доберитесь до кнопки и фото в тему. Проверьте еще не отвалилась ли пайка на плате под кнопкой.
-
By DedLogoped · Posted
На новой плате уже установлен свой БП, вон та платка на термосоплях. Так что ваш старый "БП ТВ" можете определить куда в другое место. Очевидно, что в специальное для него место в ванне! Ну явно в ванне и не должно быть никаких отверстий кроме форсунок и слива, так что я думаю или в смеситель, или в слив, ну или в цепь форсунок где вставляется. -
Ух приятно почитать. Точно Мальчиш был и точно после Олимпиады-80. Помню потому что когда жил у бабушки с дедом в Ростовской области мы с дедом всю Олимпиаду на веранде лежа просмотрели. Он на кровати,я на сундуке рядом. Дед помню под кровать бутылочку антидепрессанта ныкал и когда начинал материться-все,спалился. Потом у соседей по ночам крутили ВЭФ,ловил много,но станции уплывали. И в магазине появился этот набор,я убедил их что надо. Заработал кстати сразу,что меня приободрило не на шутку. И понеслось..
-
-
Similar Content
-
By LiSiY5
Работаю в Mplab X 5.40, написал основной код программы для Pic16 на Си и есть небольшой код на ассемблере. Так вот, подскажите как правильно сделать переход на подпрограмму с Си на ассемблер и назад. Может на каком либо примере где-то есть. Заранее всем спасибо.
-
By Ilya Gray
Доброго времени суток!
В целом, имеется опыт разработки малых устройств, что-то понимаю, в общем, старательно читаю даташиты, даже понимаю их, но на звание серьёзного инженера (пока что) не претендую.
Я пытаюсь использовать I2C на 8-битном PIC16F18326. Сижу в даташитах. Всё понимаю, всё делаю, на мой неопытный взгляд, правильно. Даже копирую полностью рабочие примеры (я даже купил такой же микроконтроллер, как в примере, скопировал код, контролируя, что он делает. Но всё равно не работает - SCL/SDA на 5в и всё тут).
Так вот: PIC16F18326 on breadboard (прошу прощения, я хз как это по-русски) на внутреннем 32мгц кристалле. Чип пашет, без проблем моргаю LEDкой. Ну, думаю, щас быстренько подниму I2C. В итоге SCL SDA сидят на 5в без движения. Я использую LED для отладки. Судя по LED, код заloopливается в месте, где проверяется while PIR1bits.SSP1IF==0. Я уже везде был, кучу форумов перерыл. Уже попробовал всё, что мог представить. Я довольно новый в мире PIC, хотел попробовать их, а они ужасно сопротивляются. Уже 2 недели долблюсь безуспешно.
Подтяжки 10к, проблем с ними никогда не было.
Собственно, вот код (я уже там попробовал повыключать ADC, вычитал про баг, что сначала I2C пины надо делать OUTPUT LOW, а потом уже INPUT из-за бага MSSP, но ничего не помогло).
// PIC16F18326 Configuration Bit Settings // 'C' source line config statements // CONFIG1 #pragma config FEXTOSC = OFF // FEXTOSC External Oscillator mode Selection bits (Oscillator not enabled) #pragma config RSTOSC = HFINT32 // Power-up default value for COSC bits (HFINTOSC with 2x PLL (32MHz)) #pragma config CLKOUTEN = OFF // Clock Out Enable bit (CLKOUT function is disabled; I/O or oscillator function on OSC2) #pragma config CSWEN = ON // Clock Switch Enable bit (Writing to NOSC and NDIV is allowed) #pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is enabled) // CONFIG2 #pragma config MCLRE = ON // Master Clear Enable bit (MCLR/VPP pin function is MCLR; Weak pull-up enabled) #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config WDTE = OFF // Watchdog Timer Enable bits (WDT disabled; SWDTEN is ignored) #pragma config LPBOREN = OFF // Low-power BOR enable bit (ULPBOR disabled) #pragma config BOREN = ON // Brown-out Reset Enable bits (Brown-out Reset enabled, SBOREN bit ignored) #pragma config BORV = LOW // Brown-out Reset Voltage selection bit (Brown-out voltage (Vbor) set to 2.45V) #pragma config PPS1WAY = ON // PPSLOCK bit One-Way Set Enable bit (The PPSLOCK bit can be cleared and set only once; PPS registers remain locked after one clear/set cycle) #pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable bit (Stack Overflow or Underflow will cause a Reset) #pragma config DEBUG = OFF // Debugger enable bit (Background debugger disabled) // CONFIG3 #pragma config WRT = OFF // User NVM self-write protection bits (Write protection off) #pragma config LVP = ON // Low Voltage Programming Enable bit (Low Voltage programming enabled. MCLR/VPP pin function is MCLR. MCLRE configuration bit is ignored.) // CONFIG4 #pragma config CP = OFF // User NVM Program Memory Code Protection bit (User NVM code protection disabled) #pragma config CPD = OFF // Data NVM Memory Code Protection bit (Data NVM code protection disabled) // #pragma config statements should precede project file includes. // Use project enums instead of #define for ON and OFF. #include <xc.h> #include <htc.h> #include <stdio.h> #include <stdint.h> #define _XTAL_FREQ 32000000 void i2c_is_idle(void){ //while(!PIR1bits.SSP1IF); //while(SSPCON2bits.SEN==1 || SSPCON2bits.RSEN==1 || SSPCON2bits.PEN==1 || SSPCON2bits.RCEN==1 || SSPCON2bits.ACKEN==1 || SSPSTATbits.R_nW==1){}; while(PIR1bits.SSP1IF == 0){ PORTCbits.RC2=1; }; // SSP1IF is set when operation complete PORTCbits.RC2=0; PIR1bits.SSP1IF = 0; // clear interrupt flag } void i2c_start(void){ i2c_is_idle(); SSPCON2bits.SEN = 1; } void i2c_rep_start(void){ i2c_is_idle(); SSPCON2bits.RSEN = 1; } void i2c_stop(void){ i2c_is_idle(); SSPCON2bits.PEN = 1; } void i2c_write(uint8_t i2c_data){ i2c_is_idle(); SSPBUF = i2c_data; while(SSPSTATbits.BF != 0); while(SSPCON2bits.ACKSTAT != 0); } uint8_t i2c_read(uint8_t ack){ uint8_t recieve =0; i2c_is_idle(); SSPCON2bits.RCEN = 1; while(SSPSTATbits.BF != 1); recieve = SSPBUF; SSPCON2bits.ACKEN = ack; return recieve; } void i2c_init(void){ TRISCbits.TRISC0 = 1; TRISCbits.TRISC1 = 1; SSPSTATbits.SMP = 1; SSPSTATbits.CKE = 0; SSPCONbits.SSPM = 0x08; SSPADD = 79; SSPCONbits.SSPEN = 1; } void main(void) { ANSELCbits.ANSC0 = 0; //ADC RC0 OFF ANSELCbits.ANSC1 = 0; //ADC RC1 OFF TRISCbits.TRISC2=0; //LED PIN TRISCbits.TRISC0=0; //MSSP bug counter TRISCbits.TRISC1=0; //MSSP bug counter //__delay_ms(5); LATCbits.LATC1=0; //MSSP bug counter LATCbits.LATC0=0; //MSSP bug counter //__delay_ms(5); INTCONbits.GIE=1; //global interrupt en INTCONbits.PEIE=1; //peripheral interrupt en ADCON0bits.ADON=0; //unpower adc just in case i2c_init(); //THIS SETS TRISC BITS FOR SCL SDA while(1){ i2c_start(); i2c_write(0x3C); i2c_stop(); } return; } Задача: просто увидеть коммуникацию на SCL SDA, я уже потом по даташитам таргет девайсов без проблем напишу дрова. Не получается именно осуществлять коммуникацию.
Подскажите, пожалуйста, я не понимаю, где я дурак, а между тем волос на голове становится всё меньше, а те, что остались, стремительно приобретают серый окрас, ибо 2 недели я долбаюсь с одной проблемой. Благодарю за ваши советы. Спасибо.
-
By Анариза Блоодхаст
Доброго дня. Загорелась идеей создать автоматическую кормушку для своей кошки. Поискав в интернете, нашла готовые решения для Ардуино, но мой преподаватель не приемлет его использование, поэтому я здесь.
Я планирую сделать кормушку, отсыпающую некоторую дозу сухого корма через определённый промежуток времени после включения в сеть или же ориентируясь на реальное время. Поскольку я только учусь подобному, мне нужны советы как что делать и с чего начать.
Я хочу знать:
какой пик лучше подобрать;
какие потребуются модули и как их подключить к МК;
из чего сделать конструкцию кормушки;
можно ли адаптировать и оптимизировать код, который предлагается для готовых решений на Ардуино (ссылка на одно из них: http://wiki.amperka.ru/slot-box:three-automatic-animal-feeder )
В работе с пиками использую MPLAB, Proteus 7, а также софт для прошивки МК. Если нужен дополнительный софт, пожалуйста, поделитесь им и кратко опишите схему работы с ним.
-
By perec200
Добрый день, в программирование контроллеров я ничего не смыслю, знаю только ассемблер, С++.
Мне необходимо реализовать систему автополива, у меня есть 5 выходов RA каждый из которых отвечает за открытия крана.
У каждого порта есть время срабатывания и длительность полива. Как мне в заданное время подать на нужный выход RA логическую единицу и держать этот уровень определенное время.
Пример: время срабатывания RA1 в 12:15 логическая единица должна быть установлена на 5 минут после истечения этого времени выход выдаёт сигнал 0.
Может посоветуете свои варианты как лучше сделать к примеру делать полив через заданные промежутки времени.
Основной вопрос: как создать таймер, который в заданное время сработает и подаст сигнал на порт RA?
-
By wabbit
Уважаемые форумчане, добрый день!
Прошу вашего совета,
Стоит задача снять с устройства(домофон) на базе PIC16F886-I/SO код набираемый на цифровой клавиатуре устройства:
схема:
shema_principialnaya_SM100R.pdf
Насколько я понимаю сигнал(CMOS) подается на RB3 и затем уходит по выводу Ek устройства напряжением 14 Вольт.
Есть также устройство,(коммутатор домофона БК100), тоже на базе PIC16F57-I/SO , которое этот сигнал умеет успешно принимать и распознавать.
схема:
shema_principialnaya_БК100.pdf
Если я правильно понимаю то сигнал приходит на ножки OSC1 и TOCKI?
Вопрос такой, можно ли как-то этот сигнал передаваемый на БК100 параллельно получить на ПК(или GPIO Rasberry) и распознать?
В случае Rasberry можно получить этот сигнал понизив напряжение до 3.3вольта с 14в, чтобы не спалить плату? Хватит ли скорости чтения GPIO для распознания всех битов или нужен какой-то серийный интерфейс аля UART?
На компьютере на RS232 наверное подключить не получиться, так как там напряжение от +12 до -12 вольт используется? Есть ли какие-то другие порты на обычном ПК, которые смогли бы распознать такой ввод с контроллера (извините за глупость, может Aux или Mic?)
Пожалуйста подскажите куда копать, чтобы решить такую задачу, если она решаема.
Спасибо
shema_principialnaya_SM100R.pdf
shema_principialnaya_БК100.pdf
-