Categories
DIY

Arduino – записки на полях, написанные пОтом

Так, запись на сегодня отвечает исключительно практическим потребностям – больше не хочется искать по всему интернету данные о Ардуино.

Так, запись на сегодня отвечает исключительно практическим потребностям – больше не хочется искать по всему интернету данные о Ардуино.

И да, блог снова ожил. Возможно, даже будут появляться новые записи.

1. LCD.

Адрес у той, что у меня есть – 0x3F.Это чтобы не забыть. А если я захочу еще раз найти это – http://arduino.cc/playground/Main/I2cScanner

// ---------------------------------------------------------------- /
// Arduino I2C Scanner
// Re-writed by Arbi Abdul Jabbaar
// Using Arduino IDE 1.8.7
// Using GY-87 module for the target
// Tested on 10 September 2019
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
// ---------------------------------------------------------------- /

#include <Wire.h> //include Wire.h library

void setup()
{
  Wire.begin(); // Wire communication begin
  Serial.begin(9600); // The baudrate of Serial monitor is set in 9600
  while (!Serial); // Waiting for Serial Monitor
  Serial.println("\nI2C Scanner");
}

void loop()
{
  byte error, address; //variable for error and I2C address
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for (address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();

    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.print(address, HEX);
      Serial.println("  !");
      nDevices++;
    }
    else if (error == 4)
    {
      Serial.print("Unknown error at address 0x");
      if (address < 16)
        Serial.print("0");
      Serial.println(address, HEX);
    }
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");

  delay(5000); // wait 5 seconds for the next I2C scan
}

2. DHT11

Он страшно брешет, но дома можно использовать. Для использования на улице он НЕ подходит. В моем случае подключение такое – слева направо – Data, VCC,GRN.

#include <Wire.h> // Добавляем необходимые библиотеки 
#include <LiquidCrystal_I2C.h> 
#include <dht11.h> dht11 DHT; // Объявление переменной класса dht11 
#define DHT11_PIN 4 // Датчик DHT11 подключен к цифровому пину номер 4 
#define POT_PIN A3 

int light = 9; 
byte degree[8] = // Битовая маска символа градуса 
{ B00111, B00101, B00111, B00000, B00000, B00000, B00000, }; LiquidCrystal_I2C lcd(0x3F,16,2); // Задаем адрес и размерность дисплея 

void setup() { 
lcd.init(); // Инициализация 
lcd lcd.backlight(); // Включаем подсветку 
lcd.createChar(1, degree); // Создаем символ под номером 1 Serial.begin(9600); // Скорость работы порта 
Serial.println("DHT11 "); // Выводим текст 
Serial.print("LIBRARY VERSION: "); // Выводим текст Serial.println(DHT11LIB_VERSION); 
Serial.println(); // Пустая строка 
} 

void loop() { // Выводим показания влажности и температуры lcd.setCursor(0, 0); // Устанавливаем курсор в начало 1 строки lcd.print("Humidity = % "); // Выводим текст 
lcd.setCursor(11, 0); 
lcd.print(DHT.humidity, 1); 
lcd.setCursor(0, 1); // Устанавливаем курсор в начало 2 строки lcd.print("Temp = \1C "); // Выводим текст, \1 - значок градуса lcd.setCursor(11, 1); 
lcd.print(DHT.temperature,1); 
int lightness = analogRead(POT_PIN); int chk; ; // Мониторинг ошибок 
chk = DHT.read(DHT11_PIN); // Чтение данных switch (chk){ case DHTLIB_OK: break; 
case DHTLIB_ERROR_CHECKSUM: lcd.clear(); 
lcd.print("Checksum error"); 
break; 
case DHTLIB_ERROR_TIMEOUT: lcd.clear(); 
lcd.print("Time out error"); 
break; 
default: lcd.clear(); 
lcd.print("Unknown error"); 
break; 
} 

Serial.print("Humidity = "); 
Serial.print(DHT.humidity, 1); 
Serial.print(", Temp = "); 
Serial.println(DHT.temperature,1); 
if (lightness > 700) {analogWrite (light,255);} 
else {analogWrite (light,100);
} 
Serial.print(lightness); 
delay(1000); 

}
What’s your Reaction?
+1
0
+1
0
+1
0

By root

In Unix-like computer OSes (such as Linux), root is the conventional name of the user who has all rights or permissions (to all files and programs) in all modes (single- or multi-user). Alternative names include baron in BeOS and avatar on some Unix variants. BSD often provides a toor ("root" written backward) account in addition to a root account.
Regardless of the name, the superuser always has a user ID of 0. The root user can do many things an ordinary user cannot, such as changing the ownership of files and binding to network ports numbered below 1024.

Leave a Reply

Your email address will not be published. Required fields are marked *