PDA

Просмотр полной версии : Есть заядлые электронщики?


Страницы : 1 2 3 [4] 5 6

Accelero
06.09.2015, 21:05
Accelero, короче... если low это реле отключено.
Нет, у блока реле инвертированное управление, реле включают npn биполярники, т.е. управляется замыканием на массу. Если + или не подключено ничего - транзисторы закрыты, реле молчит. Я как раз первую ардуинку купил (уно) вместе с этим блоком реле и долго втыкал чёзанах!??:D. Я к релюхам тестер в режиме прозвона подключал - на лампах завтра в живую тестить буду.

Ytm
06.09.2015, 21:07
во блин намудрил :)

Accelero
06.09.2015, 21:08
во блин намудрил :)
Я то чё? Это китайцы, маман их в кино водить!:biggrin:

3ByKu_HaYkU
08.09.2015, 12:05
Ребзя, а сложно поставить производство плат на поток?

Добавлено через 32 секунды
Скажем, если есть образец какой нибудь )

Анатолич
08.09.2015, 12:45
3ByKu_HaYkU, образец чего,платы?Тебя с ней нах пошлют по идее,а вот чертеж в электронном виде если есть,то без проблем.

Accelero
08.09.2015, 13:00
Ребзя, а сложно поставить производство плат на поток?
Присоединяюсь к предыдущему посту - проект в электронном виде сделаешь, напишешь техзадание, заключишь договор - сделают. Правда стоимость будет ахтунг! Тыж не будешь по 100500 шт заказывать?
З.Ы. Мой сепперклиматконтроль второй день успешно пашет, разок подогрев включался - курятник как термос держит!:nice:

Ytm
08.09.2015, 13:16
да на самом деле вполне реально сделать крошечную партию, скажем 10 штук за вполне нормальную цену, в китае.

Accelero
08.09.2015, 13:17
да на самом деле вполне реально сделать крошечную партию, скажем 10 штук за вполне нормальную цену, в китае.
Смотря что за навеска - некоторые микрухи в китае дороже чем у нас.

Ytm
08.09.2015, 13:19
Accelero, я думал речь о текстолите, а не целиком платы готовые

Accelero
08.09.2015, 13:21
Accelero, я думал речь о текстолите, а не целиком платы готовые
Ха-ха - Ринат их дома паять чтоле будет?))) Хотел бы поглядеть на садомазо, который будет пару тыщёнок чип деталек сидя с лупой на плату пристраивать:D:D

3ByKu_HaYkU
08.09.2015, 15:42
Кароче, тема есть, хочу понять, возможно ли организовать производство рентгенов самому с небольшими вложениями.

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

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

Добавлено через 1 час 26 минут
[Для просмотра ссылки/изображения нужно войти или зарегистрироваться] ([Для просмотра ссылки/изображения нужно войти или зарегистрироваться])

похожа?

Accelero
08.09.2015, 15:45
Могу тока фото платы показать
Это принципиальная схема. А вот за кустарный рентген можно и п...ды получить - это всеж излучение!
Просто у меня кореш в инсте сам паял усилок, в том числе и плату эту с дорожками сам рисовал.
Сравнил кукан с трамвайной ручкой:D Усилки я ещё в школе паял, а на микрухах вообще даж без платы запилить можно за 5 мин с перекурами - тут овердохрена ума не надо, если сам умеешь чинить тачку, то покурив материал сам сделаешь.

3ByKu_HaYkU
08.09.2015, 15:47
не за кустарный, дурашка. Оформлю всё.
Хочу понять, во сколько это встанет и на сколько сложно.

Добавлено через 47 секунд
Это принципиальная схема.
её достаточно, чтобы ипануть плату такую?

Accelero
08.09.2015, 15:50
её достаточно, чтобы ипануть плату такую?
Хотя я маху дал - это просто схема соединения блоков. Этого недостаточно вообще ни для чего))))
Вот принципиальная схемаПросто у меня кореш в инсте сам паял усилок, в том числе и плату эту с дорожками сам рисовал.[/quote]"] ("[Для просмотра ссылки/изображения нужно войти или зарегистрироваться][quote=3ByKu_HaYkU;1467229) комповского БП, а чтоб изготовить её - нужен ресунок печатной платы, а уж для заказа он должен быть в электронном виде, чтоб можно было в станок запихнуть.
[Для просмотра ссылки/изображения нужно войти или зарегистрироваться]

3ByKu_HaYkU
08.09.2015, 16:23
понял. хрен кто поделится такой...

Accelero
27.09.2015, 20:53
Продолжаю модернизировать систему управления курями - обзавожусь моником.
[Для просмотра ссылки/изображения нужно войти или зарегистрироваться]
Возник вопрос - как убрать сотые доли процентов/градусов? Пространство нужно для отображения режимов работы 4хканального блока реле.
#include <DS3231.h>
#include <EEPROM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);


//Массив, содержащий время компиляции
char compileTime[] = __TIME__;
char compileDate[] = __DATE__;

DS3231 Clock(SDA, SCL);
Time RTC_Time;
LiquidCrystal_I2C lcd(0x3F,16,2);


void setup()
{
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);

lcd.init();
lcd.backlight();
Serial.begin(115200);
Serial.println("DHTxx test!");
dht.begin();
Clock.begin();

//Получаем число из строки, зная номер первого символа
byte hour = getInt(compileTime, 0);
byte minute = getInt(compileTime, 3);
byte second = getInt(compileTime, 6);

unsigned int hash = hour * 60 * 60 + minute * 60 + second;
if (EEPROMReadInt(0) != hash) {
//Сохраняем новый хэш
EEPROMWriteInt(0, hash);
// Записываем время в часы
Clock.adjust(compileDate, compileTime);
}
}

void loop()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
//Для запроса времени в структуру "Time"
RTC_Time = Clock.getTime();
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("H:");
lcd.print(h);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("T:");
lcd.print(t);
lcd.print("C");
lcd.setCursor(11,0);
lcd.print("");
lcd.println(Clock.getTimeStr());


Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
if (RTC_Time.hour >= 8 < 18) //&& RTC_Time.min >= 00) время включения освещения
{
digitalWrite(10, LOW);
}
if (RTC_Time.hour >= 18 || RTC_Time.hour < 8)
{
digitalWrite(10, HIGH);
}

delay (100);
if(t <= 15) //если тмпература равна или ниже ?, включаем ИК лампу
{
digitalWrite(11, LOW);
}
if(t >= 17) //если тмпература равна или выше ?, выключаем ИК лампу и доппечку
{
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}
if(t <= 12) //если тмпература равна или ниже ?, включаем доппечку
{
digitalWrite(12, LOW);
}
//Вывод дня недели
Serial.print(Clock.getDOWStr());
Serial.print(" ");

//Вывод даты
Serial.print(Clock.getDateStr());
Serial.print(" -- ");

//Вывод времени.
Serial.println(Clock.getTimeStr());
delay(100);
}

char getInt(const char* string, int startIndex) {
return int(string[startIndex] - '0') * 10 + int(string[startIndex+1]) - '0';
}

//Запись двухбайтового числа в память
void EEPROMWriteInt(int address, int value)
{
EEPROM.write(address, lowByte(value));
EEPROM.write(address + 1, highByte(value));
}
//Чтение числа из памяти
unsigned int EEPROMReadInt(int address)
{
byte lowByte = EEPROM.read(address);
byte highByte = EEPROM.read(address + 1);
return (highByte << 8) | lowByte;
}

Анатолич
28.09.2015, 09:05
Иванушка из дворца пионеров :facepalm:

Ytm
28.09.2015, 14:20
как убрать сотые доли процентов/градусов?
ищи в библиотеке которая отвечает за датчик температуры-влажности, переменные h и t как генерируются...
И еще кто у тебя лампу и доп-печку выключает если температура выше заданной поднимается?

Accelero
28.09.2015, 15:12
И еще кто у тебя лампу и доп-печку выключает если температура выше заданной поднимается?
Физически - реле)
Программно, этот ИФ:
if(t >= 17) //если тмпература равна или выше ?, выключаем ИК лампу и доппечку
{
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}Тут ещё косяк всплыл - добавил в код отображение включенных каналов в правом нижнем углу примерно так "Ch.1 2 3 4", т.е. всего четыре реле. Если одно срабатывает, то загорается его порядковый номер, например подогрев пошел "Ch. 2 ". С подогревами все норм - загорается цифра и гаснет, а вот со временем - горит постоянно:dash: Самое интересное, что прога уже больше месяца работает в полевых условиях, реле освещения стабильно вкл/выкл по расписанию, а единица на табло выключаться не хочет:facepalm:

if (RTC_Time.hour >= 8 < 18)
{
digitalWrite(10, LOW);
lcd.setCursor(12,1);
lcd.print("1");
}
if (RTC_Time.hour >= 18 || RTC_Time.hour < 8)
{
digitalWrite(10, HIGH);
}Короче и rtc_time.hour переставлял, и пытался сделать If (digitalWrite(10) == HIGH) - в первом случае горит "1" и не колышет, во втором посылает нах компилятор.

Добавлено через 2 минуты
ищи в библиотеке которая отвечает за датчик температуры-влажности
:wacko::wacko::wacko:
/* DHT library

MIT license
written by Adafruit Industries
*/

#include "DHT.h"

DHT::DHT(uint8_t pin, uint8_t type) {
_pin = pin;
_type = type;
firstreading = true;
}

void DHT::begin(void) {
// set up the pins!
pinMode(_pin, INPUT);
digitalWrite(_pin, HIGH);
_lastreadtime = 0;
}

float DHT::readTemperature(void) {
float f;

if (read()) {
switch (_type) {
case DHT11:
f = data[2];
return f;
case DHT22:
case DHT21:
f = data[2] & 0x7F;
f *= 256;
f += data[3];
f /= 10;
if (data[2] & 0x80)
f *= -1;

return f;
}
}
Serial.print("Read fail");
return NAN;
}

float DHT::readHumidity(void) {
float f;
if (read()) {
switch (_type) {
case DHT11:
f = data[0];
return f;
case DHT22:
case DHT21:
f = data[0];
f *= 256;
f += data[1];
f /= 10;
return f;
}
}
Serial.print("Read fail");
return NAN;
}


boolean DHT::read(void) {
uint8_t laststate = HIGH;
uint8_t counter = 0;
uint8_t j = 0, i;
unsigned long currenttime;

// pull the pin high and wait 250 milliseconds
digitalWrite(_pin, HIGH);
delay(250);

currenttime = millis();
if (currenttime < _lastreadtime) {
// ie there was a rollover
_lastreadtime = 0;
}
if (!firstreading && ((currenttime - _lastreadtime) < 2000)) {
return true; // return last correct measurement
//delay(2000 - (currenttime - _lastreadtime));
}
firstreading = false;
/*
Serial.print("Currtime: "); Serial.print(currenttime);
Serial.print(" Lasttime: "); Serial.print(_lastreadtime);
*/
_lastreadtime = millis();

data[0] = data[1] = data[2] = data[3] = data[4] = 0;

// now pull it low for ~20 milliseconds
pinMode(_pin, OUTPUT);
digitalWrite(_pin, LOW);
delay(20);
cli();
digitalWrite(_pin, HIGH);
delayMicroseconds(40);
pinMode(_pin, INPUT);

// read in timings
for ( i=0; i< MAXTIMINGS; i++) {
counter = 0;
while (digitalRead(_pin) == laststate) {
counter++;
delayMicroseconds(1);
if (counter == 255) {
break;
}
}
laststate = digitalRead(_pin);

if (counter == 255) break;

// ignore first 3 transitions
if ((i >= 4) && (i%2 == 0)) {
// shove each bit into the storage bytes
data[j/8] <<= 1;
if (counter > 6)
data[j/8] |= 1;
j++;
}

}

sei();

/*
Serial.println(j, DEC);
Serial.print(data[0], HEX); Serial.print(", ");
Serial.print(data[1], HEX); Serial.print(", ");
Serial.print(data[2], HEX); Serial.print(", ");
Serial.print(data[3], HEX); Serial.print(", ");
Serial.print(data[4], HEX); Serial.print(" =? ");
Serial.println(data[0] + data[1] + data[2] + data[3], HEX);
*/

// check we read 40 bits and that the checksum matches
if ((j >= 40) &&
(data[4] == ((data[0] + data[1] + data[2] + data[3]) & 0xFF)) ) {
return true;
}


return false;

}


Иванушка из дворца пионеров
Саня, ты по трудовой вообще спец в этом - мож чо посоветуешь?

Ytm
28.09.2015, 15:30
а единица на табло выключаться не хочет
ну так у тя написано "lcd.print("1");" или я чет не понял?

по сотым хз
там в DHT.h инклуд DHT.h?

Страницы : 1 2 3 [4] 5 6