mirror of
				https://github.com/KevinMidboe/Arduino.git
				synced 2025-10-29 17:40:11 +00:00 
			
		
		
		
	Init commit with many years of arduino sketches and projects. I dont know if the esp8266 includes much, but there are also libraries. I hope they dont have crazy automatic versioning through the Arduino IDE.
This commit is contained in:
		
							
								
								
									
										92
									
								
								Projects/IR_LightSwitch/IR_LightSwitch.ino
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										92
									
								
								Projects/IR_LightSwitch/IR_LightSwitch.ino
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,92 @@ | ||||
| #include <IRremote.h> | ||||
| #include <Servo.h> | ||||
|  | ||||
| Servo myservo; | ||||
| int pos = 0; | ||||
| int RECV_PIN = 11; | ||||
| IRrecv irrecv(RECV_PIN); | ||||
| decode_results results; | ||||
| unsigned long CurrentValue = 0; | ||||
| unsigned long StoredCode = 0; | ||||
| const int buttonPin = 6;     // the number of the pushbutton pin | ||||
| const int ledPin =  4;      // the number of the LED pin | ||||
| const int outputPin =  3;      // the number of the output LED pin | ||||
| const int relayPin =  2;      // the number of the relay pin | ||||
| int buttonState = 0;         // variable for reading the pushbutton status | ||||
| int RecordState = 0;         //is the reciever in record mode | ||||
| int outputState = 1;         //is the output on or off | ||||
|  | ||||
| void setup() | ||||
| { | ||||
|   Serial.begin(9600); | ||||
|   myservo.attach(9); | ||||
|   irrecv.enableIRIn(); // Start the receiver | ||||
|  | ||||
|     // initialize the LED pin as an output: | ||||
|   pinMode(ledPin, OUTPUT);     | ||||
|   // initialize the pushbutton pin as an input: | ||||
|   pinMode(outputPin, OUTPUT);     | ||||
|   // initialize the pushbutton pin as an input:  pinMode(buttonPin, INPUT);    | ||||
|   pinMode(relayPin, OUTPUT);     | ||||
|   // initialize the pushbutton pin as an input:  pinMode(buttonPin, INPUT);    | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
| void loop() { | ||||
|  | ||||
|    // read the state of the pushbutton value: | ||||
| buttonState = digitalRead(buttonPin); | ||||
|  | ||||
|    // if a signal is detected, store the value | ||||
| if (irrecv.decode(&results)) { | ||||
|   CurrentValue = (results.value); | ||||
|  | ||||
|    // if the recieved value equals the programed value, then toggle the output state | ||||
|   if(CurrentValue == StoredCode) { | ||||
|       outputState = 1; | ||||
|    } | ||||
|  | ||||
|    // if the record mode is activated store the current value as the programed value | ||||
|   if (RecordState == 1) { | ||||
|     StoredCode = CurrentValue; | ||||
|     RecordState = 0; | ||||
|     digitalWrite(ledPin, LOW);   | ||||
|     Serial.println(StoredCode);  //displays stored code for reference | ||||
|    } | ||||
|  | ||||
|    // Receive the next value | ||||
|   irrecv.resume(); | ||||
| } | ||||
|  | ||||
| else //if no signal is detected, then the current value is 0 | ||||
| { | ||||
|   CurrentValue = 0; | ||||
| } | ||||
|  | ||||
|   // check if the record button is pressed. | ||||
|   // if it is, the buttonState is HIGH: | ||||
| if (buttonState == HIGH) {    | ||||
|  | ||||
|   //wait for the button to be released | ||||
|   while (buttonState == HIGH) { | ||||
|     buttonState = digitalRead(buttonPin); | ||||
|   } | ||||
|  | ||||
|    //turn on the LED to indicate that record mode is on | ||||
|     digitalWrite(ledPin, HIGH);  | ||||
|     RecordState = 1; | ||||
| } | ||||
|  | ||||
|    //set the appropriate output state | ||||
| if(outputState == 1) { | ||||
|  | ||||
|       digitalWrite(outputPin, HIGH); | ||||
|       myservo.write(180); | ||||
|       delay(1000); | ||||
|       myservo.write(150);  | ||||
|       digitalWrite(outputPin, LOW); | ||||
|       outputState = 0; | ||||
| } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user