Наверх
Проекты на Arduino

Навигация

Реклама


Популярное

Какие ванны самые лучшие — стальные, чугунные или акриловые? Каждый человек выбирает ванну по...

  Соберите список подписчиков с помощью текстовых сообщений и кодов быстрого ответа. Клиенты,...

  Люди любят свои смартфоны. Идете ли вы по улице или в торговом центре, сидите в кафе или в...

  Для большинства людей частью привлекательности владения домом является возможность...

Алюминиевые жалюзи Данный вариант жалюзи ценится своей практичностью, долгим сроком службы, а также...

» » Простой способ считать обороты кулера с помощью Arduino
Проголосовало: 78

Простой способ считать обороты кулера с помощью Arduino

Категория: Arduino

Распиновка проводов кулераРаспиновка проводов кулера Сегодня о том, как считывать обороты компьютерного кулера с помощью его встроенного тахометра.

На фото обыкновенный компьютерный вентилятор с трехпроводным подключением. Два провода красный и черный это питание с массой, и желтый, по которому комп определяет с какой скоростью крутится пропеллер.

Работает этот выход довольно просто, выход соединяется с массой, когда крыльчатка находится в определенном положении, можно даже подключить тестер и посмотреть, как это происходит. Только без питания ничего работать не будет, поэтому я его подключил к 5 вольтам от пальчиковых батареек.  Конкретно этот кулер замыкает выход 2 раза на 1 оборот, соответственно к нему можно подключить оттягивающий резистор и снимать показания как с энкодера.

 

Простой способ считать обороты кулера с помощью ArduinoПростой способ считать обороты кулера с помощью Arduino

Простой способ считать обороты кулера с помощью ArduinoПростой способ считать обороты кулера с помощью Arduino

 

Схема подключения кулера к Arduino

Схема подключения кулера к Arduino для считывания оборотов

 

+12 вольт подключается только к кулеру, к его красному проводу и никуда больше. Выход тахометра, желтый провод, подключается к нулевому прерыванию Arduino на UNO это второй вход и он же подтягивается резистором к ардуиновским 5 вольтам. Ну и, конечно же, у нас общая масса с кулером и его питанием. Теперь можно подавать питание.

 

Описание кода.

В коде заводим переменную

volatile int val;

 и функцию обработчика прерываний, которая будет плюсовать к переменной единицу.

void rpm(){
 val++;
}

В setup конфигурируем прерывания, оно у нас CHANGE,

attachInterrupt(0, rpm, CHANGE);

то есть будет выполняться когда состояние на входе изменится и когда будет изменяться состояние на входе будет прибавляться единица к переменной val.

В цикле сбрасываем переменную на 0 и ждем пол секунды пока набежит значение, ждем пол секунды а не секунду  потому что прерывание срабатывает 2 раза за 1 импульс  от чего можно считывать в 2 раза чаще.

val = 0; // сбрасываем счетчик и ждем.
delay(500); // так как прерывание CHANGE, срабатывает два раза

После рассчитываем обороты в минуту и отправляем в serial, то есть количество импульсов в секунду множим на 60 и делим на 2, так как у нас 2 импульса за оборот. И еще отправляем значения из переменной val.

Serial.print((val*60)/2); // количество импульсов на 60 секунд и делим на количество импульсов на оборот
Serial.print(" rpm ");
Serial.print(val);
Serial.println(" val");

 

 

Так же можете посмотреть видео как подключить куллер к Arduino и определить его обороты.

Эта статья была добавлена при поддержке нашего спонсора, лучшего онлайн кинотеатра, Megogo.net. На котором можно поднять настроение себе и своим детям при просмотре мультфильмов бесплатно и онлайн. А самое главное там можно увидеть последние серии любимых мультиков ваших детей, таких как Маша и медведь, Фиксики, Барбоскины и другие.



 
Вернуться назад »

Комментарии

locodriver
Группа: Гости

код с ощибками. как подключить транзистор - не понятно.

 

  • Нравится
  • 0
Не в сети admin
Группа: Администраторы

Цитата: locodriver
код с ощибками. как подключить транзистор - не понятно.

 

Только что перепроверил код, компилируется без ошибок.
Транзистор, что стоит на макетной плате, не используется. 

  • Нравится
  • 0

Оставить комментарий

Имя:*
E-Mail:
Комментарий: