Свой блок из кода

Вопросы от новичков
Ответить
ProTV
Рядовой
Сообщения: 11
Зарегистрирован: 13.09.2017{, 08:59}
Репутация: 0

Свой блок из кода

#1

Сообщение ProTV » 03.06.2018{, 18:22}

Добрый день всем форумчанам.
Озадачился сделать свой блок из кода для ЦАПа MCP4921.
Сам код работает корректно, а вот перенести его в блок не получается.
Задача такая, что на входе блока имеем значение от 0 до 100%, масштабируем штатными средствами до 0 ...4095.
Но перезапись данного значения должна происходить только при изменении текущего значения на новое (пользователь изменил значение).
Используем библиотеку SPI.

Вход блока - In
Разрешение на запись - Write (Enable)
В свойствах необходимо выбрать номер пина - CS

Таких микросхем на шине SPI планируется - 6, вот так же думаю как сделать что бы не было конфликта, и соблюдалась очерёдность.
То есть данные по SPI приходили на нужный CS.


Под спойлером рабочий пример, в котором значение на выходе ЦАПа меняется по нарастающей, а после по убывающей.
Буду признателен за советы и рекомендации.

СпойлерПоказать

Код: Выделить всё

#include <SPI.h>
#define CS_DAC1 44
void setup()
{   
  pinMode(CS_DAC1,OUTPUT);
  digitalWrite(CS_DAC1,HIGH);
  SPI.begin();
  SPI.setClockDivider(SPI_CLOCK_DIV2);
}

void loop()
{
  for (int i=0; i<4095; i++){
                             Write4921(i, CS_DAC1) ;
                            delay(10);
                            }
 for (int i=4095; i>1; i--){
                             Write4921(i, CS_DAC1) ;
                              delay(10);
                            }
}

void Write4921(int value, int CS) {
  byte data;
  digitalWrite(CS, LOW);
  data = highByte(value);
  data = B00001111 & data; // D7 D6 D5 D4 D3 D2 D1 D0
  data = B00010000 | data; // A/B BUF GA SHDN D11 D10 D9 D8
  SPI.transfer (data); 
  data = lowByte(value);
  SPI.transfer (data); 
  digitalWrite(CS, HIGH);
}

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Свой блок из кода

#2

Сообщение Sancho » 04.06.2018{, 14:37}

Типа так...
Вход 0-4095, отправляется при смене значения на Input при En true.

Отправлено спустя 6 минут 51 секунду:
ProTV писал(а):
03.06.2018{, 18:22}
Таких микросхем на шине SPI планируется - 6, вот так же думаю как сделать что бы не было конфликта, и соблюдалась очерёдность.
То есть данные по SPI приходили на нужный CS.
Поставь SN74HC595 - будешь выбирать нужный CS с её помощью или CD4028B. Вариантов много...
Вложения
MCP4921_(CODE).ubi
(23.09 КБ) 84 скачивания
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ProTV
Рядовой
Сообщения: 11
Зарегистрирован: 13.09.2017{, 08:59}
Репутация: 0

Свой блок из кода

#3

Сообщение ProTV » 04.06.2018{, 18:42}

Спасибо большое :). Просветили немного.
Всё работает, теперь разбираюсь с блоком ПИД Бороды. Не могу заставить его работать.

Отправлено спустя 2 минуты 22 секунды:
Офтоп: подскажите где программа хранит созданные блоки пользователя, в папке программы нет.
Вложения
PVUEl.flp
(1.54 МБ) 80 скачиваний

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Свой блок из кода

#4

Сообщение Sancho » 04.06.2018{, 19:04}

ProTV писал(а):
04.06.2018{, 18:44}
где программа хранит созданные блоки пользователя, в папке программы нет.
Пока Вы не сохраните блок - его как-бы нет, он внутри проги.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ProTV
Рядовой
Сообщения: 11
Зарегистрирован: 13.09.2017{, 08:59}
Репутация: 0

Свой блок из кода

#5

Сообщение ProTV » 04.06.2018{, 19:17}

Век живи, век учись :)
Вложения
LM60_(FBD).ubi
(68.72 КБ) 74 скачивания
DACNEW2_(CODE).ubi
(16.75 КБ) 79 скачиваний
DACNEW1_(CODE).ubi
(16.08 КБ) 78 скачиваний
Alarm_(FBD).ubi
(705.2 КБ) 75 скачиваний

Аватара пользователя
Golan
Капитан
Сообщения: 827
Зарегистрирован: 26.11.2017{, 23:18}
Репутация: 77
Откуда: Деревня, 98 домов в Мордовии
Имя: Владимир
Контактная информация:

Свой блок из кода

#6

Сообщение Golan » 04.06.2018{, 21:14}

ProTV писал(а):
04.06.2018{, 18:44}
Офтоп: подскажите где программа хранит созданные блоки пользователя, в папке программы нет.
Вот тут у меня, у Вас примерно там же c:\Users\Name\AppData\Roaming\flprog\userBlocks.sixx

Отправлено спустя 6 минут 55 секунд:
ProTV писал(а):
04.06.2018{, 19:17}
Век живи, век учись
Блоки без описания и авторства, жесть!
Добро не ценится в современном мире, люди от него наглеют!

Ответить

Вернуться в «Начинающим»