08.09.2015, 15:42
|
#71
|
Заблокирован
В Клубе с: 13.12.2009
Город: Бажова, 8. жду!
Авто: вагина
Сообщений: 6,668
Поблагодарили 13 раз(а)
|
Re: Есть заядлые электронщики?
Кароче, тема есть, хочу понять, возможно ли организовать производство рентгенов самому с небольшими вложениями.
Для этого нужна рентгеновская трубка (их заказывать онли), плата управления (нужно чтобы она выдавала 380 вольт правильный промежуток времени).
Но я в электронике ваще не соображаю, вот и решил спросить у гуру...
Могу тока фото платы показать, ну чтоб яснее былоо чём речь.
Просто у меня кореш в инсте сам паял усилок, в том числе и плату эту с дорожками сам рисовал.
Добавлено через 1 час 26 минут
[Для просмотра ссылки/изображения нужно войти или зарегистрироваться]
похожа?
|
|
|
08.09.2015, 15:45
|
#72
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от 3ByKu_HaYkU
Могу тока фото платы показать
|
Это принципиальная схема. А вот за кустарный рентген можно и п...ды получить - это всеж излучение!
Цитата:
Сообщение от 3ByKu_HaYkU
Просто у меня кореш в инсте сам паял усилок, в том числе и плату эту с дорожками сам рисовал.
|
Сравнил кукан с трамвайной ручкой Усилки я ещё в школе паял, а на микрухах вообще даж без платы запилить можно за 5 мин с перекурами - тут овердохрена ума не надо, если сам умеешь чинить тачку, то покурив материал сам сделаешь.
|
|
|
08.09.2015, 15:47
|
#73
|
Заблокирован
В Клубе с: 13.12.2009
Город: Бажова, 8. жду!
Авто: вагина
Сообщений: 6,668
Поблагодарили 13 раз(а)
|
Re: Есть заядлые электронщики?
не за кустарный, дурашка. Оформлю всё.
Хочу понять, во сколько это встанет и на сколько сложно.
Добавлено через 47 секунд
Цитата:
Сообщение от Accelero
Это принципиальная схема.
|
её достаточно, чтобы ипануть плату такую?
|
|
|
08.09.2015, 15:50
|
#74
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от 3ByKu_HaYkU
её достаточно, чтобы ипануть плату такую?
|
Хотя я маху дал - это просто схема соединения блоков. Этого недостаточно вообще ни для чего))))
Вот принципиальная схема комповского БП, а чтоб изготовить её - нужен ресунок печатной платы, а уж для заказа он должен быть в электронном виде, чтоб можно было в станок запихнуть.
[Для просмотра ссылки/изображения нужно войти или зарегистрироваться]
|
|
|
08.09.2015, 16:23
|
#75
|
Заблокирован
В Клубе с: 13.12.2009
Город: Бажова, 8. жду!
Авто: вагина
Сообщений: 6,668
Поблагодарили 13 раз(а)
|
Re: Есть заядлые электронщики?
понял. хрен кто поделится такой...
|
|
|
27.09.2015, 20:53
|
#76
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Продолжаю модернизировать систему управления курями - обзавожусь моником.
[Для просмотра ссылки/изображения нужно войти или зарегистрироваться]
Возник вопрос - как убрать сотые доли процентов/градусов? Пространство нужно для отображения режимов работы 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
|
#77
|
Старожил
В Клубе с: 05.04.2009
Город: наркоград Королев
Авто: Х5 30d
Сообщений: 4,197
Поблагодарили 18 раз(а)
|
Re: Есть заядлые электронщики?
Иванушка из дворца пионеров
__________________
Пьянство и блуд всё перетрут
|
|
|
28.09.2015, 14:20
|
#78
|
Старики-Разбойники
В Клубе с: 26.01.2012
Город: Москва, Ново-Переделкино
Возраст: 37
Авто: mb w212
Сообщений: 8,251
Поблагодарили 298 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Accelero
как убрать сотые доли процентов/градусов?
|
ищи в библиотеке которая отвечает за датчик температуры-влажности, переменные h и t как генерируются...
И еще кто у тебя лампу и доп-печку выключает если температура выше заданной поднимается?
|
|
|
28.09.2015, 15:12
|
#79
|
Старики-Разбойники
В Клубе с: 25.03.2009
Город: afr.3nx.ru
Авто: Говновоз
Сообщений: 16,274
Поблагодарили 281 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Ytm
И еще кто у тебя лампу и доп-печку выключает если температура выше заданной поднимается?
|
Физически - реле)
Программно, этот ИФ:
Цитата:
if(t >= 17) //если тмпература равна или выше ?, выключаем ИК лампу и доппечку
{
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}
|
Тут ещё косяк всплыл - добавил в код отображение включенных каналов в правом нижнем углу примерно так "Ch.1 2 3 4", т.е. всего четыре реле. Если одно срабатывает, то загорается его порядковый номер, например подогрев пошел "Ch. 2 ". С подогревами все норм - загорается цифра и гаснет, а вот со временем - горит постоянно Самое интересное, что прога уже больше месяца работает в полевых условиях, реле освещения стабильно вкл/выкл по расписанию, а единица на табло выключаться не хочет
Цитата:
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 минуты
Цитата:
Сообщение от Ytm
ищи в библиотеке которая отвечает за датчик температуры-влажности
|
Либа
/* DHT library
MIT license
written by Adafruit Industries
*/
#include "DHT.h"
DHT: HT(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;
}
[свернуть]
Цитата:
Сообщение от Анатолич
Иванушка из дворца пионеров
|
Саня, ты по трудовой вообще спец в этом - мож чо посоветуешь?
|
|
|
28.09.2015, 15:30
|
#80
|
Старики-Разбойники
В Клубе с: 26.01.2012
Город: Москва, Ново-Переделкино
Возраст: 37
Авто: mb w212
Сообщений: 8,251
Поблагодарили 298 раз(а)
|
Re: Есть заядлые электронщики?
Цитата:
Сообщение от Accelero
а единица на табло выключаться не хочет
|
ну так у тя написано "lcd.print("1");" или я чет не понял?
по сотым хз
там в DHT.h инклуд DHT.h?
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
|
|