Я вот сделал зарядное устройство на 12в 1А с применением электронного трансформатора, кто разбирается посмотрите пожалуйста может я что то упустил, если что подскажите как правильно. Заранее благодарю. Электронный трансформирует 240в в 12в переменного тока, далее проходит через диод выпрямляется, и устремляется к конденсатору преобразуется в постоянный ток и течет на стабилитрон на стабилитроне стабилизируется. Далее падает на резисторах подключенных последовательно для уменьшения силы тока(I) на выходе получается 12в и 1А (Правельно сделал?) Раздел: Песочница (Q&A)
Добрый вечер. Помогите знайти схемку драйвера для светодиода. Питание 220в. Есть транс с выходом 32 вольта, нужен еще драйвер, может на LM2576HVT-ADJ. Даные светодиода:Светодиод 20W Белый теплый 3050-3250K, 30-34V, 600mA, 30 mil. Буду очень благодарен. Раздел: Песочница (Q&A)
Всем доброго времени суток. Подскажите опытные люди в ардуино кодинге.Набросал скетч (сырец) управления бойлером.Есть небольшая проблема.При истечении времени выполнения цикла error промаргивает OUT1.Подскажите где можно поправить чтобы убрать этот косяк?
#include <EEPROM.h>
#include <OneWire.h>
#include <LiquidCrystal.h>
#define OUT1 9 // выход 9 для реле
//int OUT1 = 9;
//#define OUT2 8 // выходы для реле
//#define OUT3 2 // nasos
//int water = 0; //pin A1 уровень //
//int val = 0;
//int analogPin = 1;
//int analogPin = 2;
//int vas = 0;
int var =0;
int vap = 1;
byte tempOUT1;//nasosOUT2
byte gister = 0;
LiquidCrystal lcd(12, 11, 4, 5, 6, 7);
OneWire ds(3); // 11 вход датчика 18b20
byte gradus[8] = {//lcd.write(1);
0b00110,
0b01001,
0b01001,
0b00110,
0b00000,
0b00000,
0b00000,
0b00000
};
byte delta_t[8] = {//lcd.write(2);
0b00000,
0b00000,
0b00000,
0b00100,
0b01010,
0b10001,
0b11111,
0b00000,
};
void error1(){ // останавливает работу программы и сигнализирует ошибку НЕТ ВОДЫ
digitalWrite(OUT1,LOW);
int wan = 0;
wan = 0;
while(wan < 20){
// выполнить что-то, повторив 20 раз
wan++;
// крутим цикл
digitalWrite(10, !digitalRead(10));
delay(500);
}
}
void erorr2(){ // останавливает работу программы и сигнализирует ошибку НЕТ ДАТЧИКА
digitalWrite(OUT1, LOW); // выключаем реле
digitalWrite (2,LOW);
//digitalWrite(OUT2, LOW);
//digitalWrite(OUT3,LOW);
int wad = 0;
wad = 0;
while(wad < 20){ // крутим цикл
wad++;
digitalWrite(13, !digitalRead(13));
delay(500);
}
}
////
byte key(){ //// для кнопок ЛСДшилда
int val = analogRead(0);
if (val < 50) return 5;
else if (val < 341) return 3;
else if (val < 511) return 4;
else if (val < 614) return 2;
else if (val < 683) return 1;
else return 0;
}
void setMenu(){ // установка температуры
byte pos;
digitalWrite(OUT1, LOW); // выключаем реле
//digitalWrite(OUT2, LOW);
//digitalWrite(OUT3, LOW);
lcd.clear();
lcd.setCursor(0, 0); // что нужно отрисовать один раз
lcd.print("OUT1: ");
lcd.setCursor(0, 1);
lcd.print("DELt: ");
lcd.blink();
while(1){ // крутим бесконечный цикл
byte KEY = key(); // читаем состояние кнопок
lcd.setCursor(6, 0); // выводим на экран
lcd.print(tempOUT1);
lcd.write(1);
lcd.print("C ");
lcd.setCursor(6, 1);
lcd.print(gister);
lcd.write(2);///////////////////////////////////////?
lcd.print("C ");
////// обработка кнопок
if (pos == 0){ // если в первой позиции
lcd.setCursor(5, 0); // устанавливаем курсор
if (KEY == 2) { // если нажата кнопка
tempOUT1--; // изменяем значение
EEPROM.write(1, tempOUT1); // сохраняем в еепром
}
else if (KEY == 5){
tempOUT1++;
EEPROM.write(1, tempOUT1);
}
}
if (pos == 1){
lcd.setCursor(5, 1);
if (KEY == 2) {
gister--;
EEPROM.write(2, gister);
}
else if (KEY == 5){
gister++;
EEPROM.write(2, gister);
}
}
if (KEY == 3) pos--; // крутим позицию
else if (KEY == 4) pos++;
if (pos > 1) pos = 0;
delay(200);
}
}
//int val = 0; // переменная для хранения считываемого значения
//void urov (){
// int analogPin = 1
//int val = getUroven()
float getTemp(){ // возвращает температуру с датчика
byte data[12]; // и останавливает программу на секунду
byte addr[8];
if (!ds.search(addr)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("No sensor.");
erorr2();
}
ds.reset_search();
if (OneWire::crc8(addr, 7) != addr[7]) {
lcd.clear();
lcd.print("Sensor CRC err");
erorr2();
}
ds.reset();
ds.select(addr);
ds.write(0x44);
delay(1000);
ds.reset();
ds.select(addr);
ds.write(0xBE);
for (int i = 0; i < 9; i++) data[i] = ds.read();
int raw = (data[1] << 8) | data[0]; // Переводим в температуру
if (data[7] == 0x10) raw = (raw & 0xFFF0) + 12 - data[6];
return raw / 16.0;
}
void setup() {
lcd.createChar(1, gradus);
lcd.createChar(2, delta_t);
lcd.begin(16, 2);
lcd.clear();
pinMode(10, OUTPUT);
pinMode(13, OUTPUT);
pinMode(OUT1, OUTPUT);
pinMode(2,OUTPUT);//boolean доработать
tempOUT1 = EEPROM.read(1); // читаем настройки
gister = EEPROM.read(2); // из еепром
}
void loop() {
var = analogRead(1); // считываем значение
if(var==0)
{
digitalWrite(OUT1,LOW);
digitalWrite (2,HIGH);
//delay(1000);
lcd.clear();
lcd.setCursor(0, 1); //вторая строка
//lcd.println(var);
lcd.print("No water");
error1();
//delay(100);
}
if(var == 1023){
digitalWrite (2,LOW);
}
vap = analogRead(2);
if(vap < 190)
{
digitalWrite(OUT1,LOW);
digitalWrite (2,HIGH);
lcd.clear();
lcd.setCursor(0, 8);
lcd.println(vap);
lcd.print(" Pmin");
error1();
//delay(100);
}
if(vap == 1023)
{
digitalWrite (2,LOW);
}
if (key() == 1) setMenu(); // если нажата селект, уходим в меню
//else if (key() == 4) analogWrite(10, 20); // если вниз, глушим
//else if (key() == 3) digitalWrite(10, HIGH);
float temperature = getTemp(); // читаем температуру
if ((var < tempOUT1)&&(vap < tempOUT1)){
digitalWrite(OUT1, LOW);}
if (temperature < (tempOUT1 - gister)){
digitalWrite(OUT1,HIGH);}
if(temperature > (tempOUT1 - gister)){
digitalWrite(OUT1,LOW);}
lcd.clear();
lcd.setCursor(0, 0); /// вывод инфы на экран
lcd.print("1:");
lcd.print(tempOUT1);
lcd.write(1);
if (digitalRead(OUT1)) lcd.print(" ON "); // показываем состояние выхода
else lcd.print(" OFF");
lcd.setCursor(0, 1);
//lcd.print("2");
lcd.write(2);
lcd.print(gister);
lcd.write(1);
lcd.print(vap);
// if (digitalRead(OUT2)) lcd.print(" ON ");
// else lcd.print(" OFF");
lcd.setCursor(9, 0); // показываем температуру с датчика
//lcd.print("|");
lcd.print(temperature, 1);
lcd.write(1);
//lcd.print("C");
//lcd.setCursor(9, 1);
// lcd.print("|");
} Раздел: Arduino и Raspberry Pi
Нужно сбросить t-триггер перед запуском основной схемы. Т.е. если сразу же после включения триггер установится в 1 ( он же может это сделать? ), то Q надо обнулить. Подскажите, пожалуйста. Раздел: Песочница (Q&A)
Компания Broadcom Corporation анонсировала первый в отрасли GNSS-концентратор (Global Navigation Satellite System) для смартфонов, который поддерживает спутниковую систему Galileo наряду с GPS, ГЛОНАСС, SBAS, QZSS и BeiDou. Новинка получила имя BCM4774. Как утверждают разработчики, это первое в отрасли решение такого типа с поддержкой Galileo. randomstar.org
В арсенале графических карт ASUS решения под маркой MATRIX стоят особняком, поскольку относятся к категории «самых-самых», сочетая в себе уникальный дизайн PCB, высококачественные компоненты и интересный дизайн. Конечно, компания просто не могла не выпустить такой вариант на базе графического процессора NVIDIA GM204. Так родилась новая графическая карта ASUS GeForce GTX 980 ROG MATRIX Platinum. Надо сказать, что внешне новинка не слишком отличается от GeForce GTX 780 Ti MATRIX Platinum: она всё так же использует фирменную систему охлаждения DirectCU II, оснащённую целым набором тепловых трубок, одна из которых имеет диаметр 10 миллиметров. Прикрывает двухвентиляторную конструкцию классический чёрно-красный кожух, сбоку на нём имеется индикатор загрузки GPU, светящийся разным цветом — это фирменная черта всей серии MATRIX. Удобно на открытых стендах, красиво в корпусах с окном.
Дисковые интерфейсы обычно разрабатывают с прицелом на будущее, но вряд ли кто-то из группы разработчиков Serial ATA 3.0 ожидал, что новый стандарт так быстро исчерпает все свои возможности. Это произошло благодаря взрыву популярности твердотельных накопителей на базе флеш-памяти. Если первые модели прекрасно укладывались в рамки SATA 2.0, то новинки сегодняшнего дня легко упираются в потолок 6 Гбит/с, установленный стандартом версии 3.0. И если в прошедшем году накопители с новыми, более скоростными интерфейсами, ещё не успели набрать той популярности, которой они уже заслуживают, то в 2015 году положение изменится. Пока популярность SSD с интерфейсом Serial ATA обусловлена единством инфраструктуры — в том случае, если производитель какой-либо системы пожелает ускорить её, он может просто поменять традиционный жёсткий диск на SSD. Диски с интерфейсом M.2 понемногу набирают популярность, но соответствующие контроллеры пока стоят дороже, нежели их аналоги с интерфейсом SATA, хотя никаких технических причин для этого нет; напротив, сама архитектура флеш-накопителей напрашивается на использование PCI Express, либо даже встроенного в процессор контроллера памяти. Пока только Apple использует в своих ноутбуках высокоскоростные SSD, но, как уже было сказано, 2015 год принесёт изменения.
Компания Apacer анонсировала свои новые твердотельные накопители для IoT-приложений ( Интернет вещей). Новинки отличаются компактными габаритами и оснащены интерфейсом SATA 3.0.
[next-page][/next-page]
|