This commit is contained in:
RedGuy 2023-06-20 19:37:45 +03:00
parent e893b848a9
commit c49adffd1c
6 changed files with 313 additions and 0 deletions

32
sketch_aug10d.ino Normal file
View File

@ -0,0 +1,32 @@
#include <Stepper.h>
Stepper myStepper(2048,4,5,7,8);
int num;
int stup;
void setup() {
// put your setup code here, to run once:
pinMode(2, INPUT); // объявляем пин 2 как вход
pinMode(3, INPUT); // объявляем пин 2 как вход
myStepper.setSpeed(10);
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(2) == HIGH) // когда на пин 2 поступает высокий сигнал
{
stup=0;
myStepper.step(0);
}
if (digitalRead(3) == HIGH)
{
stup=1;
}
delay(1000);
if (stup == 1)
{
num=num+2048;
myStepper.step(num);
}
}

25
sketch_aug10e.ino Normal file
View File

@ -0,0 +1,25 @@
#include "DHT.h"
#define DHTPIN 2 // Тот самый номер пина, о котором упоминалось выше
// Одна из следующих строк закомментирована. Снимите комментарий, если подключаете датчик DHT11 к arduino
DHT dht(DHTPIN, DHT22); //Инициация датчика
//DHT dht(DHTPIN, DHT11);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // 2 секунды задержки
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) { // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
Serial.println("Ошибка считывания");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" *C "); //Вывод показателей на экран
}

39
sketch_aug10f.ino Normal file
View File

@ -0,0 +1,39 @@
#include <Wire.h> // Добавляем необходимые библиотеки
#include "DHT.h"
#define RED 2 // Присваиваем имя RED для пина 11
#define GREEN 12 // Присваиваем имя GREEN для пина 12
#define BLUE 13 // Присваиваем имя BLUE для пина 13
#define DHTPIN A0 // к какому пину будет подключен сигнальный выход датчика
//выбор используемого датчика
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
//инициализация датчика
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
dht.begin();
pinMode(RED, OUTPUT); // Используем Pin11 для вывода
pinMode(GREEN, OUTPUT); // Используем Pin12 для вывода
pinMode(BLUE, OUTPUT); // Используем Pin13 для вывода
digitalWrite(RED, HIGH); // Включаем красный свет
}
void loop() {
// Добавляем паузы в несколько секунд между измерениями
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius
float t = dht.readTemperature();
// Read temperature as Fahrenheit
float f = dht.readTemperature(true);
Serial.println(h);
if (h > 70)
{
digitalWrite(RED, HIGH); // Включаем красный свет
} else {
digitalWrite(RED, LOW); // Включаем красный свет
}
}

62
sketch_aug10i.ino Normal file
View File

@ -0,0 +1,62 @@
#define RED 4
#define GREEN 3
#define BLUE 2
String comand;
byte wait;
int jober;
int looper;
int IDarg = 0;
String ParsedCommand[20];
void setup() {
Serial.begin(9600);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
}
char getCharCommand(){
if (Serial.available() > 0) {
char cmdraw = Serial.read();
if (cmdraw > 0) return cmdraw;
}
}
void proc(String* com) {
if(com == "RGBLR") {
Serial.println("Введите 1 или 2");
wait = 1;
jober = 1;
}
}
void job() {
if (Serial.available()>0) {
char prom = Serial.read();
if (jober == 1) {
if (prom == 1) {
digitalWrite(RED, HIGH);
} else {
digitalWrite(RED, LOW);
}
}
}
}
void loop() {
if (wait == 1) { job; }
while (looper<100) {
char CharCommand = getCharCommand();
if (CharCommand != "?") {
Serial.print(CharCommand);
ParsedCommand[IDarg] += CharCommand;
Serial.println(" ");
proc(ParsedCommand);
IDarg = 0;
for (int i = 0;i<=20;i++) {ParsedCommand[i]="";}
looper++;
}
}
}

124
sketch_aug18a.ino Normal file
View File

@ -0,0 +1,124 @@
#include <SPI.h>
#include <SD.h>
#include <NewTone.h>
long note;
long duration;
#include "IRremote.h"
IRrecv irrecv(2); // указываем вывод, к которому подключен приемник
int tonePin = 3;
decode_results results;
File myFile;
#define SizeRegisterModules 20
int IDarg = 0;
String ParsedCommand[SizeRegisterModules];
void ShowError(String errorMessage){
Serial.println("Error: \n "+errorMessage);
}
void ShowMessage(String type, String Message){
Serial.println("["+type+"] "+Message);
}
void Play(String *args){
Serial.println(args[0]);
Serial.println(args[1]);
Serial.println(args[2]);
if(args[0] == "tone") {
String prom = args[1];
prom.replace("\r\n", "");
note = prom.toInt();
Serial.println(prom);
prom = args[2];
prom.replace("\r\n", "");
duration = prom.toInt();
Serial.println(note);
Serial.println(duration);
Serial.println(prom);
NewTone(6,note,duration);
note = 0;
duration = 0;
prom = "";
}
if(args[0] == "delay") {
Serial.println("delay process");
String prom = args[1];
prom.replace("\n","");
duration = prom.toInt();
Serial.println(prom);
Serial.println(duration);
delay(duration);
duration = 0;
prom = "";
}
}
char getCharCommand(){
if (myFile.available() > 0) {
char cmdraw = myFile.read();
if (cmdraw > 0) return cmdraw;
}
return '?';
}
void songone(){
myFile = SD.open("1");
if (myFile) {
Serial.println("1:");
// считываем все данные из файла:
while (myFile.available()) {
char CharCommand = getCharCommand();
if (CharCommand != ';' && CharCommand != '?'){
//Serial.print(CharCommand);
if (CharCommand == ','){
IDarg++;
}else{
ParsedCommand[IDarg] += CharCommand;
}
}else if(CharCommand == ';'){
//Serial.println(" ");
Play(ParsedCommand);
IDarg = 0;
for (int i = 0;i<=20;i++) {ParsedCommand[i]="";}
//Serial.print(">");
}
}
// закрываем файл:
myFile.close();
} else {
// если файл не открылся, отображаем сообщение об ошибке:
Serial.println("error opening-");
}
}
void setup() {
Serial.begin(9600); // выставляем скорость COM порта
irrecv.enableIRIn(); // запускаем прием
pinMode(4, OUTPUT);
if (!SD.begin(4)) {
Serial.println("SD initialization failed!");
return;
}
}
void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
switch ( results.value ) {
case 16724175:
songone();
break;
}
irrecv.resume(); // принимаем следующую команду
}
}

31
water_detect.ino Normal file
View File

@ -0,0 +1,31 @@
#define PIN_ANALOG_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя
#define PIN_DIGITAL_RAIN_SENSOR 5 // Цифровой вход для сигнала датчика протечки и дождя
void setup(){
Serial.begin(9600);
pinMode(2, OUTPUT); // Используем Pin12 для вывода
pinMode(7, OUTPUT); // Используем Pin13 для вывода
}
void loop(){
int sensorValue = analogRead(PIN_ANALOG_RAIN_SENSOR); // Считываем данные с аналогового порта
Serial.print("Analog value: ");
Serial.println(sensorValue); // Выводим аналоговое значение в монитр порта
if(sensorValue > 1000)
{
digitalWrite(2, HIGH); // Включаем красный свет
Serial.print("Analog value: ");
} else {
digitalWrite(2, LOW); // Включаем красный свет
}
sensorValue = digitalRead(PIN_DIGITAL_RAIN_SENSOR); // Считываем данные с цифрового порта
Serial.print("Digital value: ");
Serial.println(sensorValue); // Выводим цифровое значение в монитр порта
if(sensorValue == 1)
{
digitalWrite(7, HIGH); // Включаем красный свет
} else {
digitalWrite(7, LOW); // Включаем красный свет
}
delay(1000); // Задержка между измерениями
}