Реобас с индикацией оборотов кулера.

Тема в разделе "Глядите, что я сделал", создана пользователем Scrypto, 14 авг 2015.

  1. Scrypto

    Scrypto Нерд

    Собирал для своего компьютера, дабы меньше шумел. Вот схема и фото.
    schemaReobas.PNG
    Скетч
    Код (Text):

    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    volatile int val;
    volatile int val1;
    void rpm() {
      val++;
    }
    void rpm1() {
      val1++;
    }


    LiquidCrystal_I2C lcd(0x3f, 16, 2);

    void setup() {
      Serial.begin(9600);
      attachInterrupt(0, rpm, CHANGE);
      attachInterrupt(1, rpm1, CHANGE);
      lcd.init();
      lcd.backlight();
      lcd.print("System Fan");
    }

    void loop() {
      val = 0; // сбрасываем счетчик и ждем.
      val1 = 0;
      delay(500); // так как прерывание CHANGE, срабатывает два раза
      // то и считываем каждые пол секунды.
      lcd.setCursor(0, 0);
      lcd.print("Fan 1 ");
      lcd.print((val * 60) / 2);
      lcd.print(" rpm");
      lcd.print("  ");
      lcd.setCursor(0, 1);
      lcd.print("Fan 2 ");
      lcd.print((val1 * 60) / 2);
      lcd.print(" rpm");
      lcd.print("  ");

    }
     




    6FyCjIka6Ts.jpg mGhwCB3RypU.jpg YA-TyuO0VUs.jpg a8CgYrKDZWE.jpg Gl6sQ3KLy74.jpg
     

    Вложения:

    • schemaReobas.PNG
      schemaReobas.PNG
      Размер файла:
      212,9 КБ
      Просмотров:
      1.420
    Промах и 9xA59kK нравится это.
  2. 9xA59kK

    9xA59kK Гик

    Молодец. Но комментариев в скетче почти нету, для тех кто хочет повторить и особенно для новичков. Вот к примеру как в вики.

    Из этого следует что у тебя оно каждые пол секунды срабатывает. Переведи обороты в секунду и посчитай сколько раз сработает прерывание. От сюда исходя можно сделать прерывание по заднему или переднему фронту будет реже срабатывать.
    А пол секунды это просто выводится на экран(обновляется).

    ps\ А продолжение будет.
     
    Последнее редактирование: 15 авг 2015
    Scrypto нравится это.