mirror of
				https://github.com/brmlab/ratbox.git
				synced 2025-10-30 21:43:58 +01:00 
			
		
		
		
	Pridan aktualni FW pro BrmDuino
This commit is contained in:
		
							parent
							
								
									a675a50cba
								
							
						
					
					
						commit
						7be19c6c97
					
				
					 1 changed files with 93 additions and 0 deletions
				
			
		
							
								
								
									
										93
									
								
								PotkanSkinner.pde
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								PotkanSkinner.pde
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,93 @@ | |||
| #include <Servo.h>  | ||||
| 
 | ||||
| int door_pin = 2; | ||||
| int sensor_pin[] = { 3, 4, 5, 6, 7, 8 }; | ||||
| #define sensors (sizeof(sensor_pin)/sizeof(servo_pin[0])) | ||||
| int servo_pin[] = { 9, 10 }; | ||||
| #define servos (sizeof(servo_pin)/sizeof(servo_pin[0])) | ||||
| int servo_pos[][4] = { { 80, 10, 25, 45 }, { 5, 80, 65, 45 } }; | ||||
| 
 | ||||
| Servo servo[2]; | ||||
|   | ||||
| void setup()  | ||||
| {  | ||||
|   Serial.begin(9600); | ||||
|   int i; | ||||
|   pinMode(door_pin, OUTPUT); | ||||
|   digitalWrite(door_pin, LOW); | ||||
|   for (i = 0; i < sensors; i++) | ||||
|     pinMode(sensor_pin[i], INPUT); | ||||
|   for (i = 0; i < servos; i++) { | ||||
|     servo[i].attach(servo_pin[i]); | ||||
|     servo[i].write(servo_pos[i][2]); | ||||
|   } | ||||
| }  | ||||
| 
 | ||||
| void calibrate() | ||||
| { | ||||
|   int i; | ||||
|   for (i = 0; i < 80; i++) { | ||||
|     servo[0].write(i); | ||||
|     Serial.println(i); | ||||
|     delay(250); | ||||
|   } | ||||
|   delay(1000); | ||||
| } | ||||
| 
 | ||||
| void sensor_info() | ||||
| { | ||||
| byte i; | ||||
| i = 0; | ||||
| 
 | ||||
| //if (digitalRead(sensor_pin[1]) == true) i = i + 1; | ||||
| //if (digitalRead(sensor_pin[2]) == true) i = i + 2; | ||||
| //if (digitalRead(sensor_pin[3]) == true) i = i + 4; | ||||
| //if (digitalRead(sensor_pin[4]) == true) i = i + 8; | ||||
| //if (digitalRead(sensor_pin[5]) == true) i = i + 16; | ||||
| //if (digitalRead(sensor_pin[6]) == true) i = i + 32; | ||||
| 
 | ||||
| if (digitalRead(3) == true) i = i + 1; | ||||
| if (digitalRead(4) == true) i = i + 2; | ||||
| if (digitalRead(5) == true) i = i + 4; | ||||
| if (digitalRead(6) == true) i = i + 8; | ||||
| if (digitalRead(7) == true) i = i + 16; | ||||
| if (digitalRead(8) == true) i = i + 32; | ||||
| 
 | ||||
|     Serial.print(i, BIN); | ||||
| } | ||||
| 
 | ||||
| void loop_ro()  | ||||
| { | ||||
|   sensor_info(); | ||||
|   digitalWrite(door_pin, LOW); | ||||
|   delay(1000); | ||||
|   sensor_info(); | ||||
|   digitalWrite(door_pin, HIGH); | ||||
|   delay(1000); | ||||
| } | ||||
| 
 | ||||
| void loop_rw() | ||||
| { | ||||
|   if (Serial.available()) { | ||||
|     unsigned char cmd = Serial.read(); | ||||
|     int sid = 0; | ||||
|     switch (cmd) { | ||||
|       case 'd': digitalWrite(door_pin, LOW); break; | ||||
|       case 'D': digitalWrite(door_pin, HIGH); break; | ||||
|       case 'S': sid = 1; // fall through | ||||
|       case 's': /* sid = 0; */ { | ||||
|         unsigned char pos = Serial.read(); | ||||
|         servo[sid].write(servo_pos[sid][pos - '0']); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|   sensor_info(); | ||||
|   delay(100); | ||||
| } | ||||
| 
 | ||||
| void loop() | ||||
| { | ||||
|   loop_rw(); return; // Interactive | ||||
|   loop_ro(); return; // Non-interactive, door cycling | ||||
|   calibrate(); return; // Calibrate | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tomas Suchan
						Tomas Suchan