Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
- Committer:
- ibrahim1995
- Date:
- 2016-02-25
- Revision:
- 1:94577052d858
- Parent:
- 0:e679a1bb6eca
- Child:
- 2:8435af9e917a
File content as of revision 1:94577052d858:
#include "mbed.h"
//Pull everything up
DigitalOut pull1(PTA1);
DigitalOut pull2(PTA2);
//DigitalOut pull4(PTA12);
//DigitalOut pull5(PTA4);
DigitalOut pull6(PTA5);
DigitalOut pull7(PTC8);
DigitalOut pull9(PTA13);
DigitalOut pull10(PTD5);
DigitalOut pull11(PTD0);
DigitalOut pull12(PTD2);
DigitalOut pull13(PTD3);
DigitalOut pull14(PTD1);
DigitalOut pull15(PTE0);
DigitalOut pull16(PTE1);
//DigitalOut pull17(PTC7);
//DigitalOut pull18(PTC0);
DigitalOut pull19(PTC3);
DigitalOut pull20(PTC4);
DigitalOut pull21(PTC12);
DigitalOut pull22(PTC13);
DigitalOut pull23(PTC16);
DigitalOut pull24(PTC17);
DigitalOut pull25(PTA16);
DigitalOut pull26(PTA17);
DigitalOut pull27(PTE31);
DigitalOut pull28(PTD6);
DigitalOut pull29(PTD7);
DigitalOut pull30(PTE30);
//DigitalOut pull38(PTE3);
DigitalOut pull39(PTE2);
//DigitalOut pull50(PTB11);
//DigitalOut pull51(PTB10);
//DigitalOut pull52(PTB9);
//DigitalOut pull53(PTB8);
//DigitalOut pull34(PTE21);
//DigitalOut pull35(PTE20);
//DigitalOut pull47(PTB1);
//DigitalOut pull48(PTB0);
//motor driver outputs
DigitalOut IN4(PTC5);
DigitalOut IN3(PTC6);
DigitalOut IN2(PTC10);
DigitalOut IN1(PTC11);
PwmOut ENA(PTC9);
PwmOut ENB(PTD4);
DigitalOut indicator(LED_BLUE);
//constant 3.3 volts for sensors
DigitalOut constant1(PTE5);
DigitalOut constant2(PTE4);
DigitalOut constant3(PTE3);
DigitalOut constant4(PTC0);
DigitalOut constant5(PTC7);
//line following inputs
AnalogIn leftmost(PTB0);
AnalogIn left(PTC2);
AnalogIn middle(PTB3);
AnalogIn right(PTB2);
AnalogIn rightmost(PTB1);
DigitalIn back(PTB11);
DigitalIn front(PTB10);
//debugging led outputs
DigitalOut ledleftmost(PTE20);
DigitalOut ledright(PTE23);
DigitalOut ledmiddle(PTE22);
DigitalOut ledleft(PTE29);
DigitalOut ledrightmost(PTE21);
DigitalOut ledback(PTB8);
DigitalOut ledfront(PTB9);
//ball firing
PwmOut motors(PTA12);
DigitalOut solenoid(PTA4);
int main() {
pull1=0;
pull2=0;
//pull3.mode(PullUp);
//pull4=0;
//pull5=0;
pull6=0;
pull7=0;
//pull8.mode(PullUp);
pull9=0;
pull10=0;
pull11=0;
pull12=0;
pull13=0;
pull14=0;
pull15=0;
pull16=0;
//pull17=0;
//pull18=0;
pull19=0;
pull20=0;
pull21=0;
pull22=0;
pull23=0;
pull24=0;
pull25=0;
pull26=0;
pull27=0;
pull28=0;
pull29=0;
pull30=0;
//pull34=0;
//pull35=0;
//pull38=0;
pull39=0;
//pull47=0;
//pull48=0;
//pull49=0;
//pull50=0;
//pull51=0;
//pull52=0;
//pull53=0;
motors.period(3.0);
motors.write(0);
solenoid=0;
constant1=1;
constant2=1;
constant3=1;
constant4=1;
constant5=1;
indicator=1;
wait(0.3);
indicator=0;
wait(0.3);
indicator=1;
wait(0.3);
indicator=0;
wait(0.3);
indicator=1;
ENA.period(0.001);
ENB.period(0.001);
IN1=0;
IN2=1;
IN3=0;
IN4=1;
//set inital pwm values for motor driver outputs
ENA=0;
ENB=0;
int counter=0;
while(1) {
counter=counter+1;
if(middle<0.4 & left<0.4 & right<0.4 & leftmost<0.4 & rightmost<0.24){
//skip the loop
ledmiddle=0;
ledleft=0;
ledright=0;
ledleftmost=0;
ledrightmost=0;
}else{
if(front==1){
ledfront=1;
}else{
ledfront=0;
}
if(back==1){
ledback=1;
}else{
ledback=0;
}
if(back==1 and counter>70){
counter=0;
ENB=0;
ENA=0;
if(front==0){
//shoot balls
motors=0.08;
wait_ms(550);
solenoid=1;
wait_ms(45);
solenoid=0;
}
wait(3);
motors=0;
}
if(middle>0.4){
ledmiddle=1;
ENA=0.5;
ENB=0.5;
}else{
ledmiddle=0;
ENA=0.4;
ENB=0.4;
}
if(left>0.4){
ledleft=1;
indicator=1;
ENA=0.28;
}else{
ledleft=0;
}
if(right>0.4){
ledright=1;
ENB=0.28;
}else{
ledright=0;
}
if(leftmost>0.4){
ledleftmost=1;
ENA=0;
}else{
ledleftmost=0;
}
if(rightmost>0.24){
ledrightmost=1;
ENB=0;
}else{
ledrightmost=0;
}
if((left>0.4 or leftmost>0.4)and(right>0.4 or rightmost>0.24)){
ENB=0.4;
ENA=0;
wait(0.5);
}
}
wait(0.1);
}
}