Репозиторий посвящен занятиям по электронике
void setup() {
pinMode(8, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(8, HIGH);
delay(3000);
digitalWrite(8, LOW);
delay(3000);
}int threshold = 900;
void setup() {
pinMode(8, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop() {
int photo = analogRead(A0);
if (photo > threshold) {
digitalWrite(8, HIGH);
}
else {
digitalWrite(8, LOW);
}
Serial.println(photo);
}void setup() {
pinMode(8, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop() {
int photo = analogRead(A0);
int threshold = analogRead(A2);
if (photo > threshold) {
digitalWrite(8, HIGH);
}
else {
digitalWrite(8, LOW);
}
Serial.println(threshold);
}void setup() {
pinMode(8, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop() {
int photo = analogRead(A0);
int ptr = analogRead(A2);
if (ptr > 512) {
digitalWrite(8, HIGH);
delay(3000);
digitalWrite(8, LOW);
delay(3000);
}
else digitalWrite(8, LOW);
Serial.println(ptr);
}#define LED_PIN 9
#define LED_PIN_2 8
#define PTR_PIN A0
unsigned long prev = 0;
unsigned long prev_2 = 0;
int ledState = 0;
int ledState_2 = 0;
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(PTR_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
unsigned long current = millis();
if (current - prev > 30000) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
prev = current;
}
if (current - prev_2 > 3000) {
ledState_2 = !ledState_2;
digitalWrite(LED_PIN_2, ledState_2);
prev_2 = current;
}
int ptr = analogRead(PTR_PIN);
Serial.println(ptr);
Serial.println(ledState);
}#define LED_PIN 9
#define LED_PIN_2 8
#define PTR_PIN A0
#define BUZZER 10
unsigned long prev = 0;
unsigned long prev_2 = 0;
int ledState = 0;
int ledState_2 = 0;
int melody[3] = {261, 293, 329};
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(PTR_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
unsigned long current = millis();
if (current - prev > 30000) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
prev = current;
}
if (current - prev_2 > 3000) {
ledState_2 = !ledState_2;
digitalWrite(LED_PIN_2, ledState_2);
for (int i = 0; i < sizeof(melody); i++) {
tone(BUZZER, melody[i], 500);
delay(100);
}
prev_2 = current;
}
int ptr = analogRead(PTR_PIN);
Serial.println(ptr);
Serial.println(ledState);
}#define LED_PIN 9
#define LED_PIN_2 8
#define PTR_PIN A0
#define BUZZER 10
#define SOIL A1
unsigned long prev = 0;
unsigned long prev_2 = 0;
int ledState = 0;
int ledState_2 = 0;
int melody[3] = {261, 293, 329};
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(PTR_PIN, INPUT);
pinMode(SOIL, INPUT);
Serial.begin(9600);
}
void loop() {
int soilState = analogRead(SOIL);
unsigned long current = millis();
if (current - prev > 30000) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
prev = current;
}
if (current - prev_2 > 3000) {
ledState_2 = !ledState_2;
digitalWrite(LED_PIN_2, ledState_2);
for (int i = 0; i < sizeof(melody); i++) {
tone(BUZZER, melody[i], 500);
delay(100);
}
prev_2 = current;
}
int ptr = analogRead(PTR_PIN);
Serial.println(soilState);
}#include <TroykaThermometer.h>
#define LED_PIN 9
#define LED_PIN_2 8
#define PTR_PIN A0
#define BUZZER 10
#define SOIL A1
unsigned long prev = 0;
unsigned long prev_2 = 0;
int ledState = 0;
int ledState_2 = 0;
int melody[] = {392, 330, 330, 349, 294, 294, 262, 294, 330, 349, 392, 392, 392};
TroykaThermometer thermometer(A4);
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(PTR_PIN, INPUT);
pinMode(SOIL, INPUT);
Serial.begin(9600);
}
void loop() {
int soilState = analogRead(SOIL);
unsigned long current = millis();
thermometer.read();
Serial.print("Temperature is ");
Serial.print(thermometer.getTemperatureC());
Serial.println(" C");
if (current - prev > 30000) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
prev = current;
}
if (current - prev_2 > 3000) {
ledState_2 = !ledState_2;
digitalWrite(LED_PIN_2, ledState_2);
for (int i = 0; i < sizeof(melody); i++) {
tone(BUZZER, melody[i], 700);
delay(200);
}
prev_2 = current;
}
int ptr = analogRead(PTR_PIN);
Serial.println(soilState);
}#define PTR A0
#define PHOTO A2
#define LED 9
int p5data, p5ptr;
void setup() {
Serial.begin(9600);
pinMode(PTR, INPUT);
pinMode(PHOTO, INPUT);
pinMode(LED, OUTPUT);
}
void loop() {
int val = analogRead(PTR);
int photo = analogRead(PHOTO);
Serial.println(String(val) + ";" + String(photo));
if (Serial.available() > 0) {
p5data = Serial.read();
p5ptr = Serial.read();
if (p5data == 1) {
analogWrite(LED, PTR);
delay(100);
}
else digitalWrite(LED, LOW);
}
}#define PHOTO A0
const int ledPin = 9; // the pin that the LED is attached to
unsigned long prev = 0;
int s1;
int s2;
int photo;
// "S1:120;S2:250";
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(PHOTO, INPUT);
}
void loop() {
unsigned long current = millis();
if (current - prev > 3000) {
photo = analogRead(PHOTO);
prev = current;
}
if (Serial.available() > 0) {
String data = Serial.readStringUntil('\n');
int s1Index = data.indexOf("S1:") + 3;
int delIndex = data.indexOf(";", s1Index);
String s1String = data.substring(s1Index, delIndex);
int s1 = s1String.toInt();
//float temperature = tempString.toFloat();
// String s2String = data.substring(delIndex + 4, data.length());
// int s2 = s2String.toInt();
Serial.println("sensor 1: " + String(s1) + "; " + "sensor 2: " + String(photo));
analogWrite(ledPin, s1);
// if (s1 > 100 && photo < 255) {
// analogWrite(ledPin, s1);
// }
// else {
// digitalWrite(ledPin, LOW);
// }
}
}#include <Servo.h>
Servo ser;
void setup() {
// put your setup code here, to run once:
ser.attach(9);
}
void loop() {
// put your main code here, to run repeatedly:
ser.write(90);
delay(1000);
ser.write(180);
delay(1000);
ser.write(0);
delay(1000);
}#define DIR_1 4
#define SPEED_1 5
#define DIR_2 7
#define SPEED_2 6
void setup() {
// put your setup code here, to run once:
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(DIR_1, HIGH);
analogWrite(SPEED_1, 255);
delay(5000);
digitalWrite(DIR_1, LOW);
analogWrite(SPEED_1, 255);
delay(5000);
}#include <Wire.h>
#include <SPI.h>
// библиотека для работы с RFID/NFC
#include <Adafruit_PN532.h>
#define DIR_1 4
#define SPEED_1 5
#define DIR_2 7
#define SPEED_2 6
// пин прерывания
#define PN532_IRQ 9
// создаём объект для работы со сканером и передаём ему два параметра
// первый — номер пина прерывания
// вторым — число 100
// от Adafruit был программный сброс шилда
// в cканере RFID/NFC 13,56 МГц (Troyka-модуль) этот пин не используется
// поэтому передаём цифру, большая чем любой пин Arduino
Adafruit_PN532 nfc(PN532_IRQ, 100);
uint8_t uid0[] = {0xC3, 0xD2, 0x0A, 0x2B};
uint8_t uid1[] = {0x34, 0x44, 0x74, 0x29, 0x42, 0x5A, 0x56};
uint8_t uid2[] = {};
uint8_t uid3[] = {};
uint8_t uid4[] = {};
boolean compareUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) {
for (uint8_t i = 0; i < uidLen; i++) {
if (uidRead[i] != uidComp[i]) {
return false;
}
if (i == (uidLen)-0x01) {
return true;
}
}
}
void toggleAction(int uid) {
//digitalWrite();
Serial.println("ACTION");
}
void setup(void)
{
Serial.begin(9600);
nfc.begin();
int versiondata = nfc.getFirmwareVersion();
if (!versiondata) {
Serial.print("Didn't find RFID/NFC reader");
while(1) {
}
}
Serial.println("Found RFID/NFC reader");
nfc.SAMConfig();
Serial.println("Waiting for a card ...");
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop(void)
{
uint8_t success;
// буфер для хранения ID карты
uint8_t uid[8];
// размер буфера карты
uint8_t uidLength;
// слушаем новые метки
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
// если найдена карта
if (success) {
if (compareUid(uid, uid1, uidLength)) {
toggleAction(1);
//Serial.println("user 0");
digitalWrite(DIR_1, HIGH);
analogWrite(SPEED_1, 255);
}
Serial.println("Found a card");
Serial.print("ID Length: ");
Serial.print(uidLength, DEC);
Serial.println(" bytes");
Serial.print("ID Value: ");
nfc.PrintHex(uid, uidLength);
Serial.println("");
delay(1000);
}
else {
Serial.println("Card lost");
analogWrite(SPEED_1, 0);
}
}#include <IRremote.hpp>
#define IR_RECEIVE_PIN 10
#define IR_BUTTON_PLUS 21
#define IR_BUTTON_MINUS 7
#define IR_BUTTON_CH_PLUS 71
#define IR_BUTTON_CH_MINUS 69
#define IR_BUTTON_PLAY_PAUSE 67
#define SPEED_1 5
#define DIR_1 4
#define SPEED_2 6
#define DIR_2 7
void setup(){
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN);
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop(){
if (IrReceiver.decode()) {
IrReceiver.resume(); // Enable receiving of the next value
int command = IrReceiver.decodedIRData.command;
switch (command) {
case IR_BUTTON_PLUS: {
digitalWrite(DIR_1, LOW); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, LOW); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_MINUS: {
digitalWrite(DIR_1, HIGH); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, HIGH); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_CH_PLUS: { // stop mototrs
digitalWrite(DIR_1, HIGH); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, LOW); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_CH_MINUS: {
digitalWrite(DIR_1, LOW); // set direction
analogWrite(SPEED_1, 255); // set speed
digitalWrite(DIR_2, HIGH); // set direction
analogWrite(SPEED_2, 255); // set speed
break;
}
case IR_BUTTON_PLAY_PAUSE: { // stop mototrs
analogWrite(SPEED_1, 0);
analogWrite(SPEED_2, 0);
break;
}
}
}
}#include <Servo.h>
#define DIR_1 4
#define SPEED_1 5
#define DIR_2 7
#define SPEED_2 6
#define BUZZER 10
#define FACECHECK 2
#define WATERCHECK A2
Servo ser1, ser2;
unsigned long startingMillis = 0;
unsigned long rotationTime = 400;
const int servoSpeed = 120;
const int stopValue = 90;
bool runServo = false;
int melodyWin[5] = {262, 196, 220, 247, 262};
int melodyLose[4] = {294, 277, 262, 247};
void setup() {
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
ser1.attach(9);
ser1.write(stopValue);
ser2.attach(12);
pinMode(BUZZER, OUTPUT);
pinMode(FACECHECK, INPUT);
pinMode(WATERCHECK, INPUT);
Serial.begin(9600);
}
void loop() {
int face = digitalRead(FACECHECK);
int water = analogRead(WATERCHECK);
Serial.println(String(face) + "; " + String(water));
if (runServo) {
if (startingMillis == 0) {
startingMillis = millis();
ser1.write(servoSpeed);
Serial.println("Servo started");
}
if (millis() - startingMillis >= rotationTime) {
ser1.write(stopValue);
runServo = false;
startingMillis = 0;
Serial.println("Servo stopped after one rotation");
}
}
if (Serial.available() > 0) {
String data = Serial.readStringUntil('\n');
if (data == "Win") {
for (int i = 0; i < sizeof(melodyWin) / sizeof(melodyWin[0]); i++) {
tone(BUZZER, melodyWin[i], 500);
delay(100);
}
runServo = true;
}
else {
for (int i = 0; i < sizeof(melodyLose) / sizeof(melodyLose[0]); i++) {
tone(BUZZER, melodyLose[i], 500);
delay(100);
}
digitalWrite(DIR_1, HIGH);
analogWrite(SPEED_1, 255);
delay(5000);
analogWrite(SPEED_1, 0);
ser2.write(90);
delay(5000);
ser2.write(180);
delay(10000);
ser2.write(90);
}
}
}