mirror of
				https://github.com/brmlab/ratbox.git
				synced 2025-10-31 05:53:59 +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