Ви не увійшли.
В разрыв цепи затвора также рекомендуется ставить резистор номиналом 50-150 Ом, для предотвращения кратковременных выбросов тока и защиты вывода микроконтроллера.
надо ещё резистор 100 ом между затвором и 9 пином
Зачем ?
надо ещё резистор 100 ом между затвором и 9 пином
Не пойму как сюда картинку загрузить.
И это как так нагрузку к стоку, а землю к истоку?
Я ардуино подключаю через резистор к затвору, к плюсу нагрузку с нагрузки провод идёт к стоку и выходит через исток. Между базой и истоком стоит резистор.
Нагрузка подключается к стоку, а к истоку подключается GND для n-канального, VCC для p-канального.
Пишите в Нобелевский комитет! )
А по-серьезному, схема включения нужна
Возник вопрос: почему транзистор полностью не закрывается у меня, подключал в режиме ключа подавал напряжение на сток к истоку была подключена лампочка, и она просто горит на треть накала, потом на затвор подключал ардуинку, скетч просто блинк, оно работает мигает, но лампочка не полностью тухнет. Транзистор брал ирф какой-то, думал что то с транзистором, подключал кт315, тоже самое и ещё парочку транзисторов, результат один и тотже, на переходах бежит напряжение. Брал другой БП, результат тот же, подключал по классических схемах ключей. Ничего не пойму почему так???
Заранее благодарю за ответ.
Можно двумя способами:
unsigned int zvuk() { // some code return signalMax - signalMin; } void loop() { unsigned int peakToPeak; peakToPeak = zvuk(); Serial.println(peakToPeak); }
или
unsigned int peakToPeak; void zvuk() { // some code peakToPeak = signalMax - signalMin; } void loop() { zvuk(); Serial.println(peakToPeak); }
Первый вариант более "правильный", а второй сгенерирует более компактный и быстрый код, что для мк важнее.
Спасибо!!!! второе мне больше нравится, завтра попробую в компиляторе это все.
Можно двумя способами:
unsigned int zvuk() {
// some code
return signalMax - signalMin;
}
void loop() {
unsigned int peakToPeak;
peakToPeak = zvuk();
Serial.println(peakToPeak);
}
или
unsigned int peakToPeak;
void zvuk() {
// some code
peakToPeak = signalMax - signalMin;
}
void loop() {
zvuk();
Serial.println(peakToPeak);
}
Первый вариант более "правильный", а второй сгенерирует более компактный и быстрый код, что для мк важнее.
const int sampleWindow = 50; // время выборки значений mS (50 mS = 20Hz)
unsigned int sample;
void setup()
{
Serial.begin(9600);
}
void loop()
{
unsigned long startMillis= millis();
unsigned int peakToPeak = 0; // размах колебаний
unsigned int signalMax = 0;
unsigned int signalMin = 1024;
// собираем данные на протяжении 50 mS
while (millis() - startMillis < sampleWindow)
{
sample = analogRead(0);
if (sample < 1024)
{
if (sample > signalMax)
{
signalMax = sample; // сохранение максимального значения
}
else if (sample < signalMin)
{
signalMin = sample; // сохранение минимального значения
}
}
}
peakToPeak = signalMax - signalMin; // max - min = размах колебаний
Serial.println(peakToPeak);
}
Имеем код. Хочется вызывать в других участках кода (peakToPeak).
Как правильно? Я думаю это все завернуть в функцию например void zvuk().
Void loop()
{
zvuk();
Serial.println(peakToPeak);
}
Оно будет рак работать в void loop() или других функциях, главная задача получать значения (peakToPeak)????