Jump to content
Astrix77

Разработка программы для STM32 и принципиальной схемы платы

Recommended Posts

Добрый вечер!

Необходимо написать код и разработать схему для контроллера управления домом:

1й этап самый простой, необходим код для управления освещением.

2й этап, написание кода для управления температурой дома.

Цена и сроки договорные, подробности в личке.

Забыл добавить. Код нужен для отладочной платы STM32VLDISCOVERY, только камень заменен на stm32f103ret6

В начале нужна будет консультация по установке и настройке всех необходимых программ для прошивки МК

Edited by Astrix77

Share this post


Link to post
Share on other sites

Оставьте пожалуйста , адрес почты для связи.

Для управления светом могу предложить интересное решение, но на другом МК.

 

Share this post


Link to post
Share on other sites

Время – деньги и наноамперы: применение часов реального времени Maxim Integrated

Зачем использовать внешнюю микросхему часов реального времени (RTC), а не внутренние RTC микроконтроллера? Хотя бы потому, что у RTC MAX31342 производства Maxim Integrated типовое потребление составляет 150 нА при 3 В и температуре 25°С, а у встроенных RTC одного из самых малопотребляющих микроконтроллеров при тех же условиях – примерно 370 нА.

Читать статью

не выносите мозг себе и людям. Поставьте ПЛК

сможете его сами запрограммировать

Share this post


Link to post
Share on other sites
Guest

мы не знаем его задач, чтобы рекомендовать ПЛК

Share this post


Link to post
Share on other sites
                     

Чип-резисторы Panasonic - технология мягких выводов и сертификация AEC-Q200

Технология мягких выводов чип-резисторов производства компании Panasonic. Обзор серий с оптимизированными параметрами: прецизионных тонкопленочных, токоизмерительных, антисерных, резисторов с повышенной стойкостью к статике и импульсным нагрузкам, резисторных сборок.

Читать статью

ну да, а брать $ за бесполезный код - это по нашему

Share this post


Link to post
Share on other sites

Есть готовые модули с реле, есть с симисторами, можно подключить датчики температуры, отдам недорого, все в форм-факторе на дин-рейку, микроконтроллер atmega8a, могу перепаять ан 328. Вот с датчиками температуры, интерфейс usb или RS485. Пишите ydom@mail.ru
http://www.ydom.ru/item.html?page=yGarden

Share this post


Link to post
Share on other sites

Могу взяться за это дело.


Пока ты жив, надежда есть.

Share this post


Link to post
Share on other sites
В 07.01.2018 в 13:47, hasl сказал:

не выносите мозг себе и людям. Поставьте ПЛК

сможете его сами запрограммировать

Вечер добрый!

Wago относится к понятию ПЛК? Если да, то его программирование требует опять таки хороших знаний именно этой железки.

Упомянул wago, потому что планирую делать автоматизацию дома именно на нем, но т.к. дом еще только строится, сейчас начинается отделка, нужно что то недорогое для того чтобы был свет и тепло, это временное решение, за одно проверю на сколько будет удобно пользоваться сенсорными выключателями.

Если предложите что то более интересное, с удовольствием выслушаю

Share this post


Link to post
Share on other sites
39 минут назад, Romanchek82 сказал:

К тому что это смешно, вот к чему)

Чтоб понятней было - ТЫЦ

Не знаком с автором, потому не берусь судить, но единственное что я увидел, это то, что автор изначально не обозначил направление идей которые готов рассматривать.

Моя же задача конкретная, после беседы со всеми отозвавшимися, с кем то да договоримся)

Share this post


Link to post
Share on other sites

Посмотрите ПЛК от Овен.

Есть начальное уровня. Программа бесплатная и основное программирование в граф. виде

А то что писать под СТМ прошивку, когда круг задач еще не определен - это утопия и деньги на ветер

т.к. Если вы не сможете потом сами дополнять и изменять прошивку

Либо будете платить большие суммы за доработку или человеку надоест и он вас пошлет

Останетесь не понятно с чем и понятно за какую стоимость.

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

Я полагаю вам нужно просто примитивная логика работы - автоматизированная в какой то мере

 

В частности некоторые магазины продающие ПЛК и панели оператора предоставляют услуги по программированию.

Пишите в личку если, что ;)

Edited by hasl

Share this post


Link to post
Share on other sites

Здравствуйте!

По вашей задаче есть разработанное решение (собственное): управление светом, температурой, охранные функции и др.

Если вам нужно для конкретной задачи, то могу продать готовые устройства.
Если нужно вместе с исходниками - тоже обсуждается.

мой номер 89273438967 Алексей.
предпочтительно общение по телефону или переписка в телеграм.

Хорошего дня!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • 4а32 хорош когда он в канале один. в концертных стоят по два. и таки 4а32 не для щита и требует резонатор не кислого объёма и оформления не ниже квази третьего порядка. тогда будет такой бас с мидбасом, щиту и не снилось. конечно, поставить в щит высокодобротные 4а32 с дохлыми моторами можно, но это будут уже не 4а32 а их жалкое подобие. почему? всё просто. кинаповский мотор расчитан на конкретную массу подвижки и упругость подвесной системы. и он её отлично контролирует через койл, когда имеет в зазоре заводское количество гаусс. которых там 12000=1.2тесла. а вот дохлый мотор контролировать такую подвижку не в состоянии. поэтому она телепается по инэрции, отсюда и звук соответствующий.  а ламповые низкоэффективные грелки лично меня не впечатляют.    безоосный однотактник на камне работает также. только гораздо дольше и не меняя своих параметров. но это к теме акустики не относится.
    • Прав Правильно развести входные земли. Проверить качество межблочного кабеля.
    • @Ztair ,провода питания свить нужно обязательно А что там настраивать то?
    • @Trisector ,у него масса через конденсатор,круглоглазые иногда так делают @Пес Хулиганский ,сфотографируй плату с двух сторон (ну и ник же ты выбрал итить)
    • Кто то отбить Кубань собрался..Откуда столько идиотов в Украине.. Не имеет отношения к украинскому народу
    • Поздравили-поздравили. Товарищ вот в больничку угодил в аккурат на свой праздник,как раз пограничник бывший. Я тутъ вчера ковырялся с сабом Урал,цапнул по теле клип Каменской Анастасии,посмеялся хех Вот только никогда не дойдет одно-на какой рыбий хер на бабах партаки? Хоть тресни ни миллиметра не понимать моя..Хотя чуды бывают еще..вон тоже вчерась по тв сын Елены Яковлевой https://yandex.ru/images/search?from=tabbar&text=сын елены яковлевой Не котлетоприемник,а полигон для калибров
    • Робот однако...https://aliexpress.ru/item/4000036818252.html?yclid=2944093463414341440&src=yndxweb&albch=srch&acnt=7443951&isdl=y&aff_short_key=_eMF23G&tracelog=yandexmg_Standard_Promocode_dsa Модный
  • Similar Content

    • By Евгений61
      Уважаемые знатоки языка Си. К Вам такой вопрос.
      Имеется функция на языке Си. В этой функции содержится одна статическая переменная. Проблема в том что каждый вызов этой функции отвечает за разный выполняемый алгоритм.
      Что бы было понятнее делаю таймер с задержкой включения в котором сохраняется время для каждого таймера. Вопрос состоит в том как можно сделать, чтобы при вызовах этой функции значения статической переменной были свои для каждого вызова.
      Или только писать две одинаковые функции с разными переменными?
    • By Timofey Shilov
      Пытаюсь разобраться в программировании этого контроллера и при попытке настроить USART для приема/передачи данных возникла проблема:
      Пытаюсь принять байт и после нажатия кнопки отправить его обратно, но на выходе получается совсем не то что ожидаю.

      При отправке 0 должно вернуть 0, но возвращает вот это. В чем может быть проблема?
      ASCII                                BIN                   DEC         HEX

      Подозрения падают на настройку baud rate, но вроде всё как в мануалах.

      Полный код:
      #include "stm32f4xx.h" #include "stm32f4xx_hal_gpio.h" #include "stm32f4xx_hal_rcc.h" #include "stm32f4xx_hal_cortex.h" #include "stdint.h" #include "math.h" //define Internal RC frequencies #define XTAL 16000000UL //define busses prescalers #define AHB_PRE 1 #define APB1_PRE 2 #define APB2_PRE 1 #define SysTicksClk 10000 //calculate peripheral frequencies #define SYSCLK 84000000 #define AHB SYSCLK/AHB_PRE #define APB1 AHB/APB1_PRE #define APB1_TIM APB1*2 #define APB2 AHB/APB2_PRE #define APB2_TIM APB2*1 #define SysTicks AHB/SysTicksClk #define USART_BAUDRATE 19200 #define BUF_LEN 1 struct Data { char Msg[BUF_LEN]; } Message; void USART2_IRQHandler(void) { if (!(USART2->SR & USART_SR_TXE)) { if (Message.Msg[0] == (char)0x00) GPIOA->ODR |= 1 << 1; if (Message.Msg[0] == (char)0x01) GPIOA->ODR |= 0 << 1; } if (USART2->SR & USART_SR_RXNE) { Message.Msg[0] = USART2->DR; } } int main() { RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN | RCC_AHB1ENR_GPIOBEN; GPIOA->MODER |= 1 << 1*2; //Set GPIOA pins output mode GPIOB->MODER |= 0 << 0*2; GPIOA->MODER |= 0xA0; GPIOA->AFR[0] |= 0x7700; RCC->APB1ENR |= RCC_APB1ENR_USART2EN; USART2->CR1 |= USART_CR1_UE; //usart enable USART2->CR1 |= USART_CR1_TE; //transmitter enable USART2->CR1 |= USART_CR1_RE; //receiver enable float div = (float)APB1 /(16*(float)USART_BAUDRATE); int integer = APB1 / (16*USART_BAUDRATE); float flo = (div - (float)integer)*16; int floatt = round(flo); USART2->BRR = (( integer << 4 ) + floatt); NVIC_EnableIRQ(USART2_IRQn); USART2->CR1 |= USART_CR1_TXEIE; USART2->CR1 |= USART_CR1_RXNEIE; int i; while(1) { if (!(GPIOB->IDR & GPIO_IDR_ID0)) { i = 1; } else { if(i == 1) { USART2->DR &= Message.Msg[0]; while(!(USART2->SR & USART_SR_TC)); i = 0; } } } }  
      Сама схема:

    • By Igor1
      Помогите разобраться, как совместить (X-NUCLEO-GNSS1A1 + Nucleo-STM32L053).
      На st.com  скачал СТАНДАРТНЫЙ пакет X-CUBE-GNSS1  для  Nucleo-STM32L073, отличие L053 & L053, в памяти, но при компиляции памяти хватает (с запасом).
      Вероятно необходимо пересобрать все исходники, как новый проект с  Микроконтроллером ..L053 взамен ..L073. 
      Немного освоил STM32CubeIDE.  Ничего не получается, очень мало знаний.
      Подскажите порядок действий ?
      1/- создаю новый проектSTM32CubeIDE (с Nucleo-STM32L053),
      2/- далее переписываю папки из стандартного проекта на МК Nucleo-STM32L073,
      3/-далее корректирую main.c ?....?   
      Или  (вместо нового проекта) импортировать стандартный проект МК Nucleo-STM32L073,  далее откорректировать на новый МК .. L053 ?  
      Спасибо. Игорь.
       
      P.S.
      1. Запускаем ГЛОНАСС-плату X-NUCLEO-GNSS1A1: пошаговая инструкция :  https://www.compel.ru/lib/126482
      2. Стандартный Проект X-CUBE-GNSS1:  https://www.st.com/en/embedded-software/x-cube-gnss1.html
      3. Есть софт mbed.com , для  Nucleo-STM32F401 :   https://os.mbed.com/users/etiene32/code/GNSS1A1_FINAL/     для Ардуино:   https://github.com/stm32duino/X-NUCLEO-GNSS1A1 в т.ч.
       
    • By Стальной
      Приветствую. Не получается запустить I2C на STM32F030F4P6 для общения с EEPROM. Использую StdPeriph. Сначала пробовал сам писать, потом взял код отсюда. Результат одинаков: На линиях активности нет, висит 3В. Через CubeMX все работает.
      Последний код, который я пробовал:
      void I2C_EEPROM_Init(void) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1, ENABLE); GPIOA->MODER |= GPIO_MODER_MODER9_1 | GPIO_MODER_MODER10_1; // Режим альтернативной функции GPIOA->OTYPER |= GPIO_OTYPER_OT_9 | GPIO_OTYPER_OT_10; // Открытый коллектор GPIOA->OSPEEDR |= 0xFF<<18; // Максимальная скорость // Выбор альтернативной функции GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_1); // I2C1_SCL GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_1); // I2C1_SDA I2C_InitTypeDef I2C_InitStruct; I2C_InitStruct.I2C_Timing = 0x00402D42; I2C_InitStruct.I2C_AnalogFilter = I2C_AnalogFilter_Disable; I2C_InitStruct.I2C_DigitalFilter = 0x00; I2C_InitStruct.I2C_Mode = I2C_Mode_I2C ; I2C_InitStruct.I2C_OwnAddress1 = 0xDD; I2C_Init( I2C1, &I2C_InitStruct); I2C_Cmd(I2C1, ENABLE); } int main() { /* * ВКЛЮЧЕНИМЕ IWDG */ // включаем LSI RCC_LSICmd(ENABLE); while (RCC_GetFlagStatus(RCC_FLAG_LSIRDY) == RESET); // разрешается доступ к регистрам IWDG IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); // устанавливаем предделитель IWDG_SetPrescaler(IWDG_Prescaler_256); // значение для перезагрузки IWDG_SetReload(0xEA); // перезагрузим значение IWDG_ReloadCounter(); // LSI должен быть включен //IWDG_Enable(); /* * ВКЛЮЧЕНИМЕ IWDG ЗАВЕРШЕНО */ /* * Запуск ФАПЧ * Основная частота 48 МГц * UART от HSI */ RCC->CFGR |= 0xAA<<18; //pll mul = 12 RCC->CFGR |= 5<<8; //APB prescaller = 4 RCC->CFGR3 |= 3; //USART clock from HSI RCC->CR |= RCC_CR_PLLON; while ((RCC->CR | RCC_CR_PLLRDY) == 0); RCC->CFGR |= 2; //PLL as SYSCLK /* * Настройка ФАПЧ завершена */ //RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); // I2C_Initialization(); I2C_EEPROM_Init(); while (1) { I2C_TransferHandling(I2C1, 0xA0, 1, I2C_Reload_Mode, I2C_Generate_Start_Write);//devAddr while(I2C_GetFlagStatus(I2C1, I2C_ISR_TXE) == RESET);//TXDR empty I2C_SendData(I2C1, 0);//memAddr while(I2C_GetFlagStatus(I2C1, I2C_ISR_TCR) == RESET);//transmition complete I2C_TransferHandling(I2C1, 0xA0, 1, I2C_AutoEnd_Mode, I2C_No_StartStop); while(I2C_GetFlagStatus(I2C1, I2C_ISR_TXE) == RESET); I2C_SendData(I2C1, 25); while(I2C_GetFlagStatus(I2C1, I2C_ISR_STOPF) == RESET); I2C_ClearFlag(I2C1, I2C_ICR_STOPCF); for (long int i = 0; i < 30000; i++) IWDG_ReloadCounter(); } }  
      Прошу помощи с этой проблемой. Спасибо.
    • By Стальной
      Доброго времени суток!
      Сделал отладочную (тестовую) плату с микроконтроллером STM32F722VCT6. Плата моя, целостность проверена, как топологии, так и пайки, мелкие дефекты были исправлены. Программирую через ST-Link на плате VLDiscovery. ST-Link Utility корректно распознает МК, читает и пишет память. При попытке прошить через IAR вылетает ошибка, что целевой камень не соответствует ожидаемому. Я пробовал написать мигалку и прошить двоичный файл через ST-Link Utility. Стирание, программирование и верификация проходят успешно, но мигание не наблюдается.
      Проблема с неверным определением МК уже была, но в тот раз причиной были разработчики IAR, баг в одной из версий, что они сами подтвердили и прислали патч. Однако в тот раз собранная прошивка работала, если ее зашить через утилиту.
      Помогите разобраться. Прикреплю проект платы, вдруг где ошибка. 
       

      bench.dch f7 bench.dip
×
×
  • Create New...