You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			81 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
| /*
 | |
|   Input Relay Alpha
 | |
| 
 | |
|   dewdude@gmail.com - 28-12-2019
 | |
|   
 | |
|  */
 | |
| 
 | |
| int latchPin = 11;
 | |
| int clockPin = 9;
 | |
| int dataPin = 12;
 | |
| int matrix = A0;
 | |
| 
 | |
| byte out = 0;
 | |
| int mx = 0;
 | |
| void updateShiftRegister()
 | |
| {
 | |
|    digitalWrite(latchPin,LOW);
 | |
|    shiftOut(dataPin, clockPin, LSBFIRST, out);
 | |
|    digitalWrite(latchPin, HIGH);
 | |
| }
 | |
| void setTape2()
 | |
| {
 | |
|   out = 0;
 | |
|   updateShiftRegister();
 | |
|   bitSet(out,5);
 | |
|   updateShiftRegister();
 | |
| }
 | |
| void setTape1()
 | |
| {
 | |
|   out = 0;
 | |
|   updateShiftRegister();
 | |
|   bitSet(out,4);
 | |
|   updateShiftRegister();
 | |
| }
 | |
| void setAUX()
 | |
| {
 | |
|   out = 0;
 | |
|   updateShiftRegister();
 | |
|   bitSet(out,3);
 | |
|   updateShiftRegister();
 | |
| }
 | |
| void setTune()
 | |
| {
 | |
|   out = 0;
 | |
|   updateShiftRegister();
 | |
|   bitSet(out,2);
 | |
|   updateShiftRegister();
 | |
| }
 | |
| void setPh1()
 | |
| {
 | |
|   out = 0;
 | |
|   updateShiftRegister();
 | |
|   bitSet(out,1);
 | |
|   updateShiftRegister();
 | |
| }
 | |
| 
 | |
| void setup()
 | |
| {
 | |
|   pinMode(latchPin, OUTPUT);
 | |
|   pinMode(dataPin, OUTPUT);  
 | |
|   pinMode(clockPin, OUTPUT);
 | |
| // Serial.begin(9600);
 | |
| // Serial.print("Setting default output");
 | |
|   bitSet(out,6);
 | |
|  updateShiftRegister();
 | |
| // Serial.print("Scanning Matrix");
 | |
| }
 | |
| 
 | |
| void loop() {
 | |
|   // put your main code here, to run repeatedly:
 | |
| int mx = analogRead(matrix);
 | |
|   if (mx > 100 && mx < 200) setTape2();
 | |
|   if (mx > 500 && mx < 600) setTape1();
 | |
|   if (mx > 900 && mx < 950) setAUX();
 | |
|   if (mx > 1000) setTune();
 | |
|   if (mx > 820 && mx < 899) setPh1();
 | |
| 
 | |
| // Serial.println(mx);
 | |
| delay(200);
 | |
| }
 |