А какой полевик посоветуете для управления вентилятором (24V, 0.15A)
Вид для печати
А какой полевик посоветуете для управления вентилятором (24V, 0.15A)
А какой есть? Я бы биполярник поставил, так как мощность не большая. Нужно отталкиваться от того что есть в наличии
Ничего нет, был IRF520N, но спалил (замкнул контакты). Вот и думаю какой недорогой прикупить.
Может быть есть какие нибудь платы не нужные? Например материнка или БП ATX
Есть два распотрошенных БП ATX
Перепиши все маркировки транзисторов
d13009k, STPS2045CT, sf1603g - это то что под рукой, ещё один не виден - это на радиаторах (не очень распотрошённый блок). На работе лежит раскуроченный вдрызг, там можно все посмотреть, но не сейчас.
STPS2045CT - Диод Шоттки 45В 2х10А
sf1603g - это тоже сборка из 2-х диодов
d13009k - высоковольтный биполярный транзистор. Его можно попробовать. Только от ардуины до базы транзистора, резистор 120 Ом нужно обязательно подключить
Ясно, а если на твой вкус - для такого вентилятора (он же маломощный) что можно поставить (я бы купил)?
У меня нет предпочтений. Я всегда беру то что у меня есть в наличии.
Выбор огромный и тяжело что то предложить.
Из того что у меня есть, я бы попробовал 2N4401. При условии что параметры вентилятора указаны верно
Спасибо большое. Параметры взяты с корпуса турбинки. 2N4401 у нас стоит 20 рублей, так что не так уж и дорого (по сравнению с IRF520N)
Ого! У нас в самом-самом дорогом в мире магазине "Ч.. и Д..", стоит 5 руб.Цитата:
2N4401 у нас стоит 20 рублей
Согласен что магазин дорогой, но для меня, территориально, самый близкий. А резистор нужен для него?
Нашёл ещё c2331, c815, kia7042p, a539, КТ969А, LM312T, S9014, S9018, c1507,
c2331 подойдет
А резистор нужен для него?
Что бы не спалить выход ардуины
резистор 120 Ом?
Да .
С нагрузкой от 5v Ардуино работает нормально, а c 24 (БП) ток идёт постоянно.
Разобрался - надо минус БП соединить с GND Ардуино
Но всё равно какая то ерунда - до нуля не убавляется
От 24 до 14 вольт
По какой схеме подключил?
http://compcar.ru/forum/attachment.p...chmentid=19353
PHP код:
#include <Encoder.h>
#define PIN_ENCODER_CLK 8
#define PIN_ENCODER_DT 9
#define PIN_ENCODER_SW 10
Encoder myEnc(PIN_ENCODER_DT, PIN_ENCODER_CLK);
int motorPin = 11;
int motorSpeed = 75; // Изначальная скорость двигателя
int accel = 1;
int i = 0;
long oldPosition = 0;
void setup() {
Serial.begin(9600);
pinMode(motorPin, OUTPUT);
}
void loop(){
analogWrite(motorPin, motorSpeed); // Устанавливаем первоначальную скорость
//=== ручка энкодера/регулироака
long newPosition = myEnc.read() / accel;
if (newPosition > oldPosition)
{
analogWrite(motorPin, newPosition);
motorSpeed += 5; // Прибавляем скорость
Serial.println(">>>");
if ( motorSpeed > 255 )
motorSpeed = 255;
}
else
if (newPosition < oldPosition)
{
analogWrite(motorPin, newPosition);
motorSpeed -= 5; // Убавляем скорость
Serial.println("<<<");
if ( motorSpeed < 75 )
motorSpeed = 75;
}
if ( newPosition != oldPosition)
{
i = (i + 1)%16;
oldPosition = newPosition;
analogWrite( motorPin, motorSpeed );
}
}
Я так сразу и подумл :)
Лучше попробуйте по этой схеме подключить
Только вместо светодиода мотор. И на пин11 ардуино
То же самое
На IRF530N работало на той схеме что я приложил.
Да не будет работать по твоей схеме нормально. Так как управляющий уровень 5в, а на нагрузке 24В, то нужна схема с общим эмитером, которую я тебе выложил
IRF530N это полевик, а ты тестируешь на биполярнике
Ты включаешь биполярник по схеме с общим коллектором или правильное название , которое говорит само за себя это - эмитерный повторитель. Он усиливает сигнал только по току
Я же тебе предлагаю собрать по схеме с общим эмитером. Так как по этой схеме происходит усиление мощности. То есть и по току и по напряжению
Работает )
Вообщем схема осталась прежняя, только коллектор с эмитером поменял местами
Это уже разные схемы :)
второй вывод энкодера можно переназначать? А то я на него уже диммер повесилPHP код:
// Выводы ЭНКОДЕРА
#define CLK 3 // Clock Подключаем к INT1, нельзя переназначать
#define DT 4 // второй вывод энкодера
Можно
Уперся теперь в показания температуры, как их считать с термопары? Не обязательно точно, +- 10 градусов
Термопара какая?
Визуально её не видно, но я предполагаю что тип К. Сопротивление её примерно 0.7 om. Читал что нужен усилитель LM358 или (по хорошему) MAX6675.
Усилитель нужен. Обычно используют MAX6675
Цена у MAX6675 не сопоставима с поставленной задачей.
Попробовал на LM358 - работает. Показания правда скачут, но буду разбираться дальше
Использую данную схему на макетке. Возможно ли что показания будут точнее, если впаять все детали на плату?
Вложение 19389
PHP код:
#define thermocouplePin A0 // номер порта к которому подключен выход усилителя термопары
double Ups = 4.19; //напряжение питания усилителя и ардуино
double kt = 100; //коэффициент для преобразования напряжения в температуру
double ADCmaxVal = 1023; //максимальное значение выдаваемое АЦП ардуино
double tHome = 10.61; //комнатная температура
int thermocoupleVal = 0; //полученное с АЦП число
double t = 0; //температура спая термопары
void setup()
{
pinMode(thermocouplePin, INPUT);
Serial.begin(9600); // установка связи по serial
}
void loop()
{
thermocoupleVal = analogRead(thermocouplePin);
t = (thermocoupleVal*Ups/ADCmaxVal)*kt+tHome;
Serial.println(t);
delay(100);
}
Я бы еще к питанию ОУ уделил внимание.
Я с ардуинки взял 5 вольт
Пульсации по питанию, тоже будут усиливаться вместе с полезным сигналом. Как минимум RC фильтр нужен
Chip, накидай, пожалуйста, схему для моего случая. И ещё по коду - если добавить TCCR0B = TCCR0B & 0b11111000 | 5; то нижеприведённое, не печатает раз в сек. А примерно раз в 15 сек
PHP код:
void loop()
{
Serial.println("1");
delay(1000);
}
конденсаторов на 22-47 мкФ и 0,1мкФ достаточно, их лучше располагать ближе к корпусу микросхемы
Еще можно конденсатор по обратной связи добавить
Вложение 19391
Все верно, ты изменяешь параметры таймераЦитата:
И ещё по коду - если добавить TCCR0B = TCCR0B & 0b11111000 | 5; то нижеприведённое, не печатает раз в сек. А примерно раз в 15 сек