Перейти к содержанию

Аквариумный контроллер


Гость Роман

Рекомендуемые сообщения

Добрый всем день!

Являюсь владельцем 2х аквариумов, в одном взрослые рыбы в другом мальки, и решил сделать автоматический свет + охлаждение аквариума. Для этого купил в adruino nano 3, 2 шт термодатчика влагозащищенных DS18B20, модуль часов Ds3231 AT24C32 IIC, дисплей 0.96 " I2C IIC 128*64, и 8 канальное реле.

что получилось это настроить 6 каналов на управление светом в зависимости от времени суток,

не получается прописать 2 термодатчика для управления 7м и 8м каналом, каждый датчик подключается к 3 и 4 ножкам контроллера,

кто подскажет как это сделать?

после как все заработает выложу все суда и картинками и готовым скетчем

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

это цифровые датчики, вешаются на шину I2C, которая занята вашим дисплеем, возьмите термопары и посадите их на АЦП

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

это цифровые датчики, вешаются на шину I2C, которая занята вашим дисплеем, возьмите термопары и посадите их на АЦП

Если вы не знали, на I2C можно до 127 устройств подключить. И это все на всего два провода!

DS18B20 использует протокол 1-wire и ни какой i2c. Все подключается вообще на 1 провод! (на один пин)

Аппаратной поддержки протокола 1 wire в вашей микросхеме нет, в апноутах атмела описывается как можно для управления 1-wire приладить аппаратный uart. Даже либы есть

Изменено пользователем mixan23
Ссылка на комментарий
Поделиться на другие сайты

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

АVR не имеет на борту 1-wire, или ее пишут программно, или используют I2C.

и если я не ошибаюсь именно I2C пришло на замену 1-wire

сначала был 1-wire потом вырос до 2-wire(TWI, TWSI) он же I2C

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

и если я не ошибаюсь именно I2C пришло на замену 1-wire

Ошибаетесь, как раз всё наоборот...

Опыт - это то, что получаешь, не получив того, что хотел

Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

нашел))) верно все.

кстати нашел и библиотеки для 18в20, можно на любой вывод вешать, только в либе указать на какой

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

//----------ИМПОРТ БИБЛИОТЕК-------------------------
#include <OneWire.h>							 //Подключаем библиотеку для использования однопроводного интерфейса, Температурного датчика DS18B20
#include <Wire.h>								 //Подключаем библиотеку для использования I2C интерфейса с модулем RTC, который также испольует I2C
#include <DS1307.h>								 // Подключение библиотеки для часового модуля
DS1307 rtc(A0, A1);
//---------------------------------------------------
int TSensorPin1 = 3;							 //Определяем порт шины OneWire (IC) для температурного датчика DS18B20 1
int TSensorPin2 = 4;							 //Определяем порт шины OneWire (IC) для температурного датчика DS18B20 2
OneWire ds1(TSensorPin1);						 //Создаем соответсвующий объект 1 термодатчик
OneWire ds2(TSensorPin2);						 //Создаем соответсвующий объект 2 термодатчик
#include <OLED_I2C.h>							 // Подключение библиотеки для дисплея
OLED myOLED(SDA, SCL, 8);
//----------Объявляем разные переменные--------------
const int RelayChn7 = 11;						 //Используем цифровой ПОРТ 8 для 7 канала релейного модуля
const int RelayChn8 = 12;						 //Используем цифровой ПОРТ 8 для 8 канала релейного модуля
//----------Терморегуляторы
//----------Седьмой КАНАЛ----------------------------
float t0 = 26.0;									 //Уставка температуры для 7 канала релейного модуля 1 аквариум
float tGistrsis = 0.7;							 //Уставка гистерезиса - т.е отклонения от темп-ры уставки
												 //т.е. в данном случае 0,7 = плюс минус 0,35 градуса
//----------Восьмой КАНАЛ----------------------------
float t1 = 26.0;									 //Уставка температуры для 8 канала релейного модуля 2 аквариум
float tGistrsis = 0.7;							 //Уставка гистерезиса - т.е отклонения от темп-ры уставки
												 //т.е. в данном случае 0,7 = плюс минус 0,35 градуса
//----------Модуль инициализации setup() - выполняется один раз при инициализации платы при подаче напряжение (и аналогичных событиях)
void setup(){
pinMode(RelayChn7,OUTPUT);					 //Инициализируем порт для 7 канала как ВЫХОД
pinMode(RelayChn8,OUTPUT);					 //Инициализируем порт для 8 канала как ВЫХОД

digitalWrite(RelayChn7,HIGH);				 //Устанавливаем на входах релейного модуля ВЫСОКИЙ уровень
digitalWrite(RelayChn8,HIGH);				 //Т.к. используемый релейный модуль с опторазвязкой - управляется инверсной логикой					
Wire.begin();								 //Инициируем I2C интерфейс
myOLED.begin();
rtc.halt(false);
// rtc.setDOW(SUNDAY);							 // Настройка дня недели
// rtc.setTime(12, 0, 0);						 // Настройка времени
// rtc.setDate(10, 05, 2015);					 // Настройка даты
}												 // КОНЕЦ ИНИЦИАЛИЗАЦИИ
//--------------------------------------------------
void loop()										 // ПРОГРАММЫй безусловный ЦИКЛ
{
DateTime myTime = RTC.now();					 //Читаем данные времени из RTC

//----------Раздел обработки реле по времени ----
long utime = myTime.unixtime();				 //сохраняем время в формате UNIX
utime %= 86400;								 //Сохраняем в переменной остаток деления на кол-во секнд в сутках,
												 //Это дает количество секунд с начала текущих суток

//----------Вывод температуры на ЖК--------------
float temp = getTemp();						 //Читаем температуру с датчика (как тут указать 2ой термодатчик)
lcd.setCursor(11, 0);						 // тут для ОЛЕД экрана переделаю
lcd.print(temp);
//------------КАНАЛ 7 Контроль температуры -------
if (temp < t0-tGistrsis/2)
 {
 digitalWrite(RelayChn7,LOW);				 //Устанавливаем на 7 входе релейного модуля НИЗКИЙ уровень - реле срабатывает
 }	
else if (temp > t0+tGistrsis/2)
 {
 digitalWrite(RelayChn7,HIGH);			 //Устанавливаем на 7 входе релейного модуля ВЫСОКИЙ уровень - реле выключается
 }	
 //------------КАНАЛ 8 Контроль температуры -------
if (temp < t1-tGistrsis/2)
 {
 digitalWrite(RelayChn8,LOW);				 //Устанавливаем на 8 входе релейного модуля НИЗКИЙ уровень - реле срабатывает

 }	
else if (temp > t1+tGistrsis/2)
 {
 digitalWrite(RelayChn8,HIGH);			 //Устанавливаем на 8 входе релейного модуля ВЫСОКИЙ уровень - реле выключается

 }	


}//------------Конец ЦИКЛА-----------------------------
//*****************************************************
//-------------Объявления и реализация функций---------
float getTemp(){									 //функция чтения значения температуры с датчика DS18B20 по шине OneWire
byte data[12]; // ЧТО это за адреса где их взять ?????
byte addr[8]; // ЧТО это за адреса ?????
if ( !ds.search(addr)) {
 //no more sensors on chain, reset search
 lcd.setCursor(0, 0);
 lcd.print("NO more addrss!");
 ds.reset_search();
 return -1001;
 }
if ( OneWire::crc8( addr, 7) != addr[7]) {
	 lcd.setCursor(0, 0);
	 lcd.print("CRC is not valid!");

 return -1002;
}
if ( addr[0] != 0x10 && addr[0] != 0x28) {
	 lcd.setCursor(0, 0);
	 lcd.print("NOT recognizd!");
 return -1003;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1);
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE);

for (int i = 0; i < 9; i++) {
 data[i] = ds.read();
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float TRead = ((MSB<<8) | LSB);
float Temperature = TRead / 16;
return Temperature;
}

Вот нашел код под 1 термодатчик, добавил что смог, так же понимаю что нижнюю часть нужно повторить и вместо ds добавить ds1,

вопросы имеено в этим частям кода

float temp = getTemp(); //Читаем температуру с датчика (как тут указать 2ой термодатчик) где указано что именно с 1ого он будет брать температуру а не со второго?

---------------------------------------------------------

float getTemp(){ //функция чтения значения температуры с датчика DS18B20 по шине OneWire аналогично как 2ой прописать

byte data[12]; // ЧТО это за адреса?????

byte addr[8]; // ЧТО это за адреса?????

Ссылка на комментарий
Поделиться на другие сайты

byte data[12]; // ЧТО это за адреса?????

byte addr[8]; // ЧТО это за адреса?????

data - это массив байт, куда размещается то, что считано с датчика.

addr - аналогично, но здесь должен указываться адрес конкретного датчика.

Т.е. правильная функция должна иметь вид

float getTemp(Address)

т.е. возвращается температура конкретного датчика.

Приложил библу, посмотрите пример Multiple.pde.

Можно вывести адреса всех подключённых датчиков и обратиться к определённому по его адресу.

Аттач - DallasTemperature.zip

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

#include <OneWire.h>

#include <DallasTemperature.h>

#include <LiquidCrystal.h>

OneWire oneWire(15); // вход датчиков 18b20

DallasTemperature ds(&oneWire);

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

DeviceAddress sensor1 = {0x28, 0xA8, 0x3E, 0xF9, 0x05, 0x0, 0x0, 0x12};

DeviceAddress sensor2 = {0x28, 0xE6, 0xBD, 0x3B, 0x05, 0x0, 0x0, 0xCF};

void setup() {

// Serial.begin(9600);

ds.begin();

lcd.begin(16, 2);

lcd.clear();

}

void loop() {

ds.requestTemperatures(); // считываем температуру с датчиков

lcd.setCursor(0, 0);

lcd.print("Sensor 1: ");

lcd.print(ds.getTempC(sensor1)); // отправляем температуру

lcd.print("C");

lcd.setCursor(0, 1);

lcd.print("Sensor 2: ");

lcd.print(ds.getTempC(sensor2));

lcd.print("C");

}

Спасибо, сейчас буду доделывать проект)

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
может кто подскажет в чем проблема?
В испльзовании ардуины.

Фтопку ардуину с её библами. Делайте всё на чистом Си и, как уже советовали выше, без всяких бутлоадеров.

PS:

Сейчас, ради интереса, погуглил что стоит в этой ардуине и глянул параметры этого МК. И был просто поражён - как вообще можно такой простой задачей забить 32К флеши ? Это же надо ещё умудриться это сделать :crazy:

Ссылка на комментарий
Поделиться на другие сайты

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

Final01-09-2015.ino

Ссылка на комментарий
Поделиться на другие сайты

на экране отображается
но проблема не могу вывести на экран
Это как ?

Всё-таки отображается у вас, или проблема с выводом на экран ?

Поконкретнее вопросы надо задавать.

Ссылка на комментарий
Поделиться на другие сайты

RTC.adjust(DateTime(__DATE__, __TIME__)); я так понима это срока для задания времяни и даты текущей? вопрос ее так и надо заливать 1 раз без изменений или вместо __DATE__, __TIME__ нужно прописать текущюю дату и время? если прописать то в каком формате? провбовал 01.09.2015 и 18.01 не проходит,

myOLED.print(myTime.minute(), 15, 30); думал что так выводится время, но не проходит( для lcd.setCursor(4, 0); и lcd.print(myTime.minute(), работает а для Oled Нет не подскажете как его вывести?

и с температурой не так все просто myOLED.print(temp2),0,12); Тоже не работает.

Что работает так это вывод на экран статистической информации о том что какой канал сейчас включен а какой выключен...осталось добавить информацию о текущей температуре и контроллер готов

Final01-09-2015.ino

libraries.rar

Ссылка на комментарий
Поделиться на другие сайты

myOLED.print(myTime.minute(), 15, 30); думал что так выводится время
Для начала, узнайте какой тип принимает эта функция. Потом нужную информацию необходимо привести к этому типу и послать в функцию.
myOLED.print(temp2),0,12); Тоже не работает
А Вам не кажется, что тут количество открывающихся скобок не совпадает с количеством закрывающихся ? Или для ардуины это пофиг ? Компиль всё глотает подряд ?

Вообще, нормальные компиляторы должны сообщать об ошибках. Либо Вы их не читаете, либо для ардуинов компили ненормальные...

Ссылка на комментарий
Поделиться на другие сайты

юзал недавно одну библиотеку для вывода на LCD, так вот в ней чтобы вывести значение из переменной, нужно это значение преобразовать (разложить в массив) и только потом она выводит это значение. Преобразование было с помощью функции float.

ну и в сами функции вывода принимали такие значения как размер шрифта, координаты курсора, и в какой системе исчисления вывод осуществлять, ну и сама инфа соответственно. Выкиньте Вы эту среду разработки, поставте Studio 6.2 и ваш код будет работать на ура и занимать отсилы 3-4 кило, а то и меньше

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

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

Ну и совет ТС'у. Пусть забудет о таких фразах, как "не прокатывает", "не работает" и им подобным. Тут технический форум, а не экстрасенсорный.

По подробнее нужно излагать свои мысли и проблемы. ТОгда и ответы будут такими же чёткими, короткими и понятными.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Представляю Вам свою версию простого акваконтроллера

Дано:

1 шт. Arduino nano v3.

1 шт. Oled дисплей 128 X 64 I2C 0,96".

2 шт. Водонепроницаемых DS18B20 температурных датчика.

1 шт. DS3231 модуль часов реального времени.

1 шт. 8 канальный релейный модуль

Итого:

Управление 2мя аквариумами

1 аквариум 4 таймера света + 1 канал на охлаждение (включение вентилятора)

2 аквариум 2 таймера света + 1 канал на охлаждение (включение вентилятора)

Вывод на дисплей:

Температуру с 2х датчиков

Статус каналов освещения, охлаждения (включено выключено)

Время контроллера (нужно настроить отображение "0" в скетче код имеется)

Пример информации с дисплея (датчики температуры не подключены)

post-41119-0-22249600-1443415374_thumb.jpg

Скетч и библиотеки:

Arduino 8 каналов (6 свет, 2 охлаждение).zip

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Гир без частотомер бесполезен, можно косвенными методами, но ещё больше нужно оборудования. А так как вы занимаетесь приемниками, я бы рекомендовал вам осциллограф.
    • Смотри внимательно - всё есть и нормально припаяно:
    • Если проверял в родной схеме - там динамическая индикация на 4 разряда и прямое падение напряжения и прямой постоянный ток будет в 4 раза больше: Напряжение (0,772 - 0,785)*4=3,088-3,14 Вольт. Ток (1,5-2,1)*4=6-8,4 мА. Если добавить защитные паузы на переключение разрядов, то реальное напряжение и ток светодиода будет на 3-5% больше.
    • Собрал ГИР на одном транзисторе больше игрушка получилась потомучто частоту ей то не как не узнать,пробовал с помощью приемника узнать но там 4 от нее гармоник так и ещё там и не узнать 465 кГц эти не как (узнал что схема приемника на 465 ПЧ),но оно что-то та и измеряет Лутше соберу генератор-пробник на 465 кГц,с помощью эго и полность настрою приемник,а котушки наверное прийдеться оставить те из антенного феррита  И правда что у такого конденсатора минимум 60 пкФ?! Вот фото это КПЕ:  
    • Исправляюсь... Здесь видно, что все банки имеют связь с контроллером, а именно этот, по середине, не имеет. Шурик куплен осенью, зимой время от времени работал, слегка. Готовился к весенней стройке. Практически новые аккумы. На всякий случай заказал 18650, высокотоковый, правда несколько большей емкости. На 1500 не нашел
    • Устройство работает штатно. Только без этой обратной информации. Без этой информации на пульте оператор не видит попали в мишень или нет.  Дело в том что пульты управление остались старые. Под прежнюю версию подъёмников.  А подъёмники новые. Только почему то не предусмотрена та самая информация. Хотя на плате имеются свободные места под детали для вывода обратной информации.  Но они не установлены. Значит и прошивка тоже урезана.Плата скорее всего изготовлена в Китае. Оборудование Российское . Но детали все на плате зарубежные.  Завтра буду на работе скину фотки плат нового и старого образца 
    • Доброго времени суток. Понадобился переменный резистор чтобы кое-что измерить, но чтобы не крутить ручку и не записывать цифры вручную т.к. это долго. В общем закончилось микроконтроллером, картой памяти и файлом с таблицей измеренных результатов. Идея банально проста: не полностью открытый транзистор имеет какое-то сопротивление перехода. Оно как-то зависит от того насколько он открыт. У микроконтроллеров есть PWM выводы, на которые можно выдать цифру от 0 до 255 и на выходе будет напряжение от 0 до 5 вольт (точнее, напряжения питания), соответственно. Этот вывод можно подавать на базу транзистора, таким образом регулируя сопротивление его перехода. Что-то подобное я видел в схемах регулирования громкости разных независимых каналов, когда подтягивая запаралеленные базы транзисторов к земле меняли громкость, взял тогда на заметку если мне нужно будет программное управление громкостью усилителя. Чтобы не вдаваться в подробности что там происходит с точки зрения физики, с учетом того что идеальных приборов не бывает и характеристики всех плавают от партии к партии - проще для конкретного элемента провести калибровку. Подопытный - BU103AD (400V, 2A - что наковырял из сгоревшей платы, искал что-то с более менее приличным током). Написал простую программу - ввожу значение в последовательный порт, МК получает число и устанавливает значение вывода. На оси X значение от 0 до 255, на оси Y сопротивление между коллектором и эмиттером. Обнаруживается первая хрень - при переключении мультиметра со значения 2000 Ом на значение 20К Ом резкий скачок. Там не видно, но на переключении с 200 на 2000 он тоже есть. У кого есть умные мысли почему так происходит - прошу ими поделиться, а пока я прихожу к выводу что надо обойтись без перещёлкиваний и далее измерять на одном и том же делении (то есть одной и той же линейкой!). Дальше следующий шаг - надо придумать какой функцией это можно сглаживать. Тут вообще что-то не очевидное если не вникать в физику процесса, то ли логарифм, то ли обратная пропорциональность, но если отложить то же сопротивление в омах от величины 1/PWM - обнаруживается простая линейная зависимость. На графике интервал сопротивлений ограничен 0 - 2000 (до скачка). Как добавлять линию тренда на график в Microsoft Excel, надеюсь, все знают. Уравнение на диаграмме. Если надо наоборот получить величину PWM которую следует установить чтобы получить сопротивление заданной величины, то надо из уравнения выразить X, либо перестроить график поменяв оси местами. На краях возможна какая-то нелинейность, потому при таком сглаживании надо понимать в каком интервале формула будет работать. Могу сказать что при PWM > 250 происходит какая-то ерунда (возможно насыщение на базе, опять же не хочу вникать в эти подробности которые, как я считаю, для решения задачи можно и не знать). Делать много картинок мне определенно лень, но поверьте на слово что если избавиться от скачка на 200 омах и посчитать тренд для отрезка PWM от 230 (соответствующего сопротивлению 164 Ом) до 251 (конец линейной части графика) величина достоверности R2 равна единице. Поскольку задачу я решал специфическую - изучить поведение источника тока (солнечной панели) при разных токах начиная от 0.1 А (мизер) и до 2А (предел для выбранного транзистора), то большие сопротивления мне были даром не нужны, достаточно было покрыть интервал от 0 до 100 либо 200 Ом (в этом интервале также не актуальна проблема с непонятно откуда взявшимся скачком при переключении мультиметра). Беру и соединяю мощный резистор 100 Ом параллельно переходу коллектор-эмиттер выбранного транзистора. Схема по идее должна вести себя как параллельное соединение резисторов, один из которых фиксированного номинала а второй переменный. Провожу калибровку - снова изменяю сопротивление схемы при разном значении PWM (с шагом 5, где надо уточнить с шагом 2 или 1), для первого раза нормально а так шаг можно значительно увеличить. 3_R100-200Ohm_paral.bmp Получается вот такой график с соответствующими прямыми - для подключения транзистора к резисторам 100 и 200 Ом соответственно. На краях интервала (250-255 и 0-5) возможна какая-то ерунда потому эти значения лучше исключить с графика до построения линии тренда и получения окончательной формулы.   Я не публикую тут никаких готовых результатов, это только концепция получения достаточно дешевого программно управляемого переменного резистора (аналога цифрового потенциометра или резистивного цифро-аналогового преобразователя) на любой интервал сопротивлений и для любого тока (на который найдете транзистор) + основные идеи как получить формулы зависимости сопротивления от PWM и наоборот - значения PWM которое надо задать чтобы получить сопротивление величины R. Прошу начинать критиковать. Что я не учел? Где подводные камни?
  • Похожий контент

×
×
  • Создать...