Объединение двух кодов в один (будильник и ночник)

qwertz1234
Offline
Зарегистрирован: 23.04.2019

Нужно соединить два разных кода в один
Будильник:
#include
#include
#include

//************************************//
LiquidCrystal_I2C lcd(0x27,20,4); // Display I2C 20 x 4
RTC_DS1307 RTC;

//************Button*****************//
int P1=6; // Button SET MENU'
int P2=7; // Button +
int P3=8; // Button -
int P4=9; // SWITCH Alarm

//**************Alarm***************//
#define LED 13
#define buzzer 10

//************Variables**************//
int hourupg;
int minupg;
int yearupg;
int monthupg;
int dayupg;
int menu =0;
int setAll =0;

uint8_t alarmHours = 0, alarmMinutes = 0; // Holds the current alarm time

void setup()
{

lcd.begin();
lcd.backlight();
lcd.clear();

pinMode(P1,INPUT_PULLUP); // https://www.arduino.cc/en/Tutorial/InputPullupSerial
pinMode(P2,INPUT_PULLUP);
pinMode(P3,INPUT_PULLUP);
pinMode(P4,INPUT_PULLUP);
pinMode(LED,OUTPUT);
pinMode(buzzer, OUTPUT); // Set buzzer as an output
printAllOff();
Serial.begin(9600);
Wire.begin();
RTC.begin();

if (! RTC.isrunning()) {
Serial.println("RTC is NOT running!");
// Set the date and time at compile time
RTC.adjust(DateTime(__DATE__, __TIME__));
}
// RTC.adjust(DateTime(__DATE__, __TIME__)); //removing "//" to adjust the time
// The default display shows the date and time
int menu=0;
}

void loop()
{

// check if you press the SET button and increase the menu index
if(digitalRead(P1)== LOW)
{
menu=menu+1;
}
if((digitalRead(P2)== LOW)&&(digitalRead(P3)== LOW))
{

DisplaySetHourAll();
DisplaySetMinuteAll();
lcd.clear();
lcd.setCursor(5,0);
lcd.print("ALARM");
lcd.setCursor(5,1);
lcd.print(alarmHours, DEC);
lcd.print(":");
lcd.print(alarmMinutes, DEC);
delay(1000);
lcd.clear();
}
// in which subroutine should we go?
if (menu==0)
{
DisplayDateTime(); // void DisplayDateTime
Alarm(); // Alarm control
}
if (menu==1)
{
DisplaySetHour();
}
if (menu==2)
{
DisplaySetMinute();
}
if (menu==3)
{
DisplaySetYear();
}
if (menu==4)
{
DisplaySetMonth();
}
if (menu==5)
{
DisplaySetDay();
}
if (menu==6)
{
StoreAgg();
delay(500);
menu=0;
}
delay(100);
}

void DisplayDateTime ()
{
// We show the current date and time
DateTime now = RTC.now();

lcd.setCursor(0, 2);
lcd.print("Hour : ");

if (now.hour()<=9)
{
lcd.print("0");
}
lcd.print(now.hour(), DEC);
hourupg=now.hour();
lcd.print(":");
if (now.minute()<=9)
{
lcd.print("0");
}
lcd.print(now.minute(), DEC);
minupg=now.minute();
lcd.print(":");
if (now.second()<=9)
{
lcd.print("0");
}
lcd.print(now.second(), DEC);

lcd.setCursor(0, 1);
lcd.print("Date : ");
if (now.day()<=9)
{
lcd.print("0");
}
lcd.print(now.day(), DEC);
dayupg=now.day();
lcd.print("/");
if (now.month()<=9)
{
lcd.print("0");
}
lcd.print(now.month(), DEC);
monthupg=now.month();
lcd.print("/");
lcd.print(now.year(), DEC);
yearupg=now.year();

char DOW[][10]={"Sunday ","Monday ","Tuesday ","Wednesday","Thursday ","Friday ","Saturday "};
lcd.setCursor(0, 0);
lcd.print("Day : ");
lcd.print(DOW[now.dayOfTheWeek()]); // if it appears error in the code, enter the code given below
//lcd.print(DOW[now.dayOfWeek()]);
}

void DisplaySetHour()
{
// time setting
lcd.clear();
DateTime now = RTC.now();
if(digitalRead(P2)==LOW)
{
if(hourupg==23)
{
hourupg=0;
}
else
{
hourupg=hourupg+1;
}
}
if(digitalRead(P3)==LOW)
{
if(hourupg==0)
{
hourupg=23;
}
else
{
hourupg=hourupg-1;
}
}
lcd.setCursor(0,0);
lcd.print("Set time:");
lcd.setCursor(0,1);
lcd.print(hourupg,DEC);
delay(200);
}

void DisplaySetMinute()
{
// Setting the minutes
lcd.clear();
if(digitalRead(P2)==LOW)
{
if (minupg==59)
{
minupg=0;
}
else
{
minupg=minupg+1;
}
}
if(digitalRead(P3)==LOW)
{
if (minupg==0)
{
minupg=59;
}
else
{
minupg=minupg-1;
}
}
lcd.setCursor(0,0);
lcd.print("Set Minutes:");
lcd.setCursor(0,1);
lcd.print(minupg,DEC);
delay(200);
}

void DisplaySetYear()
{
// setting the year
lcd.clear();
if(digitalRead(P2)==LOW)
{
yearupg=yearupg+1;
}
if(digitalRead(P3)==LOW)
{
yearupg=yearupg-1;
}
lcd.setCursor(0,0);
lcd.print("Set Year:");
lcd.setCursor(0,1);
lcd.print(yearupg,DEC);
delay(200);
}

void DisplaySetMonth()
{
// Setting the month
lcd.clear();
if(digitalRead(P2)==LOW)
{
if (monthupg==12)
{
monthupg=1;
}
else
{
monthupg=monthupg+1;
}
}
if(digitalRead(P3)==LOW)
{
if (monthupg==1)
{
monthupg=12;
}
else
{
monthupg=monthupg-1;
}
}
lcd.setCursor(0,0);
lcd.print("Set Month:");
lcd.setCursor(0,1);
lcd.print(monthupg,DEC);
delay(200);
}

void DisplaySetDay()
{
// Setting the day
lcd.clear();
if(digitalRead(P2)==LOW)
{
if (dayupg==31)
{
dayupg=1;
}
else
{
dayupg=dayupg+1;
}
}
if(digitalRead(P3)==LOW)
{
if (dayupg==1)
{
dayupg=31;
}
else
{
dayupg=dayupg-1;
}
}
lcd.setCursor(0,0);
lcd.print("Set Day:");
lcd.setCursor(0,1);
lcd.print(dayupg,DEC);
delay(200);
}

void StoreAgg()
{
// Variable saving
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SAVING IN");
lcd.setCursor(0,1);
lcd.print("PROGRESS");
RTC.adjust(DateTime(yearupg,monthupg,dayupg,hourupg,minupg,0));
delay(200);
}
void DisplaySetHourAll()// Setting the alarm minutes
{
while(digitalRead(P1)==HIGH){

lcd.clear();

if(digitalRead(P2)==LOW)
{
if(alarmHours==23)
{
alarmHours=0;
}
else
{
alarmHours=alarmHours+1;
}
}
if(digitalRead(P3)==LOW)
{
if(alarmHours==0)
{
alarmHours=23;
}
else
{
alarmHours=alarmHours-1;
}
}
lcd.setCursor(0,0);
lcd.print("Set HOUR Alarm:");
lcd.setCursor(0,1);
lcd.print(alarmHours,DEC);
delay(200);
}
delay(200);
}

void DisplaySetMinuteAll()// Setting the alarm minutes
{
while(digitalRead(P1)==HIGH){

lcd.clear();
if(digitalRead(P2)==LOW)
{
if (alarmMinutes==59)
{
alarmMinutes=0;
}
else
{
alarmMinutes=alarmMinutes+1;
}
}
if(digitalRead(P3)==LOW)
{
if (alarmMinutes==0)
{
alarmMinutes=59;
}
else
{
alarmMinutes=alarmMinutes-1;
}
}
lcd.setCursor(0,0);
lcd.print("Set MIN. Alarm:");
lcd.setCursor(0,1);
lcd.print(alarmMinutes,DEC);
delay(200);
}
delay(200);
}
void printAllOn(){
lcd.setCursor(0,3);
lcd.print("Alarm: ");

if (alarmHours <= 9)
{
lcd.print("0");
}
lcd.print(alarmHours, DEC);

lcd.print(":");
if (alarmMinutes <= 9)
{
lcd.print("0");
}
lcd.print(alarmMinutes, DEC);

}
void printAllOff() {
lcd.setCursor(0, 3);
lcd.print("Alarm: Off ");
}
void Alarm(){
if(digitalRead(P4)== LOW)
{
setAll=setAll+1;
}
if (setAll==0)
{
printAllOff();
noTone (buzzer);
digitalWrite(LED,LOW);
}
if (setAll==1)
{

printAllOn();

DateTime now = RTC.now();
if ( now.hour() == alarmHours && now.minute() == alarmMinutes )
{
lcd.noBacklight();
DateTime now = RTC.now();
digitalWrite(LED,HIGH);
tone(buzzer,880); //play the note "A5" (LA5)
delay (300);
tone(buzzer,698); //play the note "F6" (FA5)
lcd.backlight();
}
else{
noTone (buzzer);
digitalWrite(LED,LOW);
}

}
if (setAll==2)
{
setAll=0;
}
delay(200);
}

Ночник:
#include

const int rTriggerPin = 8;
const int rEchoPin = 7;
const int gTriggerPin = 10;
const int gEchoPin = 9;
const int bTriggerPin = 12;
const int bEchoPin = 11;

const int receiverPin = 4;

const int rLedPin = 3;
const int gLedPin = 5;
const int bLedPin = 6;

int on = 0;

IRrecv irrecv(receiverPin);
decode_results results;

void checkColor(int triggerPin, int echoPin, int ledPin, char* color) {
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);

int distance = pulseIn(echoPin, HIGH);
int sm = distance/29/2;
if (sm >= 0 && sm <= 30) {
if (sm > 25)
analogWrite(ledPin, 0);
else
analogWrite(ledPin, 255 - (sm*10));

Serial.println(color);
Serial.println(sm);
}
}

void setup() {
Serial.begin(9600);
irrecv.enableIRIn();

pinMode(rTriggerPin, OUTPUT);
pinMode(rEchoPin, INPUT);
pinMode(gTriggerPin, OUTPUT);
pinMode(gEchoPin, INPUT);
pinMode(bTriggerPin, OUTPUT);
pinMode(bEchoPin, INPUT);

pinMode(rLedPin, OUTPUT);
pinMode(gLedPin, OUTPUT);
pinMode(bLedPin, OUTPUT);
}

void loop() {
checkColor(rTriggerPin, rEchoPin, rLedPin, "red");
checkColor(gTriggerPin, gEchoPin, gLedPin, "green");
checkColor(bTriggerPin, bEchoPin, bLedPin, "blue");

if (irrecv.decode(&results)) {
switch (results.value) {
case 16724175: {
analogWrite(rLedPin, 255);
analogWrite(gLedPin, 0);
analogWrite(bLedPin, 0);
break;
}
case 16718055: {
analogWrite(rLedPin, 0);
analogWrite(gLedPin, 255);
analogWrite(bLedPin, 0);
break;
}
case 16743045: {
analogWrite(rLedPin, 0);
analogWrite(gLedPin, 0);
analogWrite(bLedPin, 255);
break;
}
case 16736925: {
if(on) {
analogWrite(rLedPin, 0);
analogWrite(gLedPin, 0);
analogWrite(bLedPin, 0);
on = 0;
}
else {
analogWrite(rLedPin, 255);
analogWrite(gLedPin, 255);
analogWrite(bLedPin, 255);
on = 1;
}
break;
}
case 16738455: {
int r = 0, g = 0, b = 255;
analogWrite(bLedPin, b);
analogWrite(gLedPin, g);
analogWrite(rLedPin, r);
delay(500);
for(r = 0; r < 255; r++) {
analogWrite(bLedPin, b);
analogWrite(gLedPin, g);
analogWrite(rLedPin, r);
Serial.println(r);
Serial.println(g);
Serial.println(b);
delay(100);
}
for(b = 0; b < 255; b++) {
analogWrite(bLedPin, 255 - b);
analogWrite(rLedPin, r);
analogWrite(gLedPin, g);
Serial.println(r);
Serial.println(g);
Serial.println(b);
delay(100);
}
b = 0;
for(g = 0; g < 255; g++) {
analogWrite(bLedPin, b);
analogWrite(gLedPin, g);
analogWrite(rLedPin, r);
Serial.println(r);
Serial.println(g);
Serial.println(b);
delay(100);
}
for(r = 0; r < 255; r++) {
analogWrite(rLedPin, 255 - r);
analogWrite(gLedPin, g);
analogWrite(bLedPin, b);
Serial.println(r);
Serial.println(g);
Serial.println(b);
delay(100);
}
r = 0;
for(b = 0; b < 255; b++) {
analogWrite(bLedPin, b);
analogWrite(gLedPin, g);
analogWrite(rLedPin, r);
Serial.println(r);
Serial.println(g);
Serial.println(b);
delay(100);
}
for(g = 0; g < 255; g++) {
analogWrite(gLedPin, 255 - g);
analogWrite(bLedPin, b);
analogWrite(rLedPin, r);
Serial.println(r);
Serial.println(g);
Serial.println(b);
delay(100);
}
g = 0;
break;
}
}

Serial.println(results.value);
irrecv.resume();
}

delay(100);
}

b707
Offline
Зарегистрирован: 26.05.2017

qwertz1234 неудачно вы зашли на форум

Во-первых - вставили код неправильно. Во-вторых - при вставке потеряли часть кода вообще.

Ну и в третьих - главное. В чем смысл вашего поста? - "Нужно обьединить коды" - кому нужно? Вам? - вот и обьединяйте. Или Вы рассчитываете, что нам тут больше заняться нечем? :)

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

надо так надо. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Дед, какой ты добрый. Вот человеку разрешил кодЪ объеденить ! Малацца !

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Да!   Вот Клапа точно бы запретил. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

И хде он теперь.....

ЕвгенийП
ЕвгенийП аватар
Онлайн
Зарегистрирован: 25.05.2015

qwertz1234 пишет:
Нужно соединить два разных кода в один Будильник
Ну, нужно, так объединяйте. Вроде, это не запрещено.

От нас-то Вы чего хотите?