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.
main.cpp@0:7e80907da2dc, 2019-05-06 (annotated)
- Committer:
- victorhlvsilva
- Date:
- Mon May 06 20:28:39 2019 +0000
- Revision:
- 0:7e80907da2dc
- Child:
- 1:a88dcc6beb9d
Acionamento;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| victorhlvsilva | 0:7e80907da2dc | 1 | #include "mbed.h" |
| victorhlvsilva | 0:7e80907da2dc | 2 | |
| victorhlvsilva | 0:7e80907da2dc | 3 | Serial pc(USBTX, USBRX); |
| victorhlvsilva | 0:7e80907da2dc | 4 | |
| victorhlvsilva | 0:7e80907da2dc | 5 | InterruptIn botao_SW1(D2); |
| victorhlvsilva | 0:7e80907da2dc | 6 | InterruptIn botao_SW2(D7); |
| victorhlvsilva | 0:7e80907da2dc | 7 | |
| victorhlvsilva | 0:7e80907da2dc | 8 | Timer debounceSW1Fall; |
| victorhlvsilva | 0:7e80907da2dc | 9 | Timer debounceSW2Fall; |
| victorhlvsilva | 0:7e80907da2dc | 10 | Timer debounceSW1Rise; |
| victorhlvsilva | 0:7e80907da2dc | 11 | Timer debounceSW2Rise; |
| victorhlvsilva | 0:7e80907da2dc | 12 | Timer avanco; |
| victorhlvsilva | 0:7e80907da2dc | 13 | |
| victorhlvsilva | 0:7e80907da2dc | 14 | AnalogIn Shunt(A5); |
| victorhlvsilva | 0:7e80907da2dc | 15 | float Corrente; |
| victorhlvsilva | 0:7e80907da2dc | 16 | |
| victorhlvsilva | 0:7e80907da2dc | 17 | DigitalOut saida_IN1(D10); |
| victorhlvsilva | 0:7e80907da2dc | 18 | DigitalOut saida_IN2(D8); |
| victorhlvsilva | 0:7e80907da2dc | 19 | DigitalOut saida_EN(D9); |
| victorhlvsilva | 0:7e80907da2dc | 20 | |
| victorhlvsilva | 0:7e80907da2dc | 21 | bool SW1 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 22 | bool SW2 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 23 | bool IN1 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 24 | bool IN2 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 25 | |
| victorhlvsilva | 0:7e80907da2dc | 26 | void DSW1Fall(){ |
| victorhlvsilva | 0:7e80907da2dc | 27 | |
| victorhlvsilva | 0:7e80907da2dc | 28 | if (debounceSW1Fall.read_ms() > 200) { |
| victorhlvsilva | 0:7e80907da2dc | 29 | SW1 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 30 | debounceSW1Fall.reset(); |
| victorhlvsilva | 0:7e80907da2dc | 31 | pc.printf("DSW1Fall \n\r"); |
| victorhlvsilva | 0:7e80907da2dc | 32 | |
| victorhlvsilva | 0:7e80907da2dc | 33 | avanco.start(); |
| victorhlvsilva | 0:7e80907da2dc | 34 | } |
| victorhlvsilva | 0:7e80907da2dc | 35 | } |
| victorhlvsilva | 0:7e80907da2dc | 36 | |
| victorhlvsilva | 0:7e80907da2dc | 37 | void DSW2Fall(){ |
| victorhlvsilva | 0:7e80907da2dc | 38 | |
| victorhlvsilva | 0:7e80907da2dc | 39 | if (debounceSW2Fall.read_ms() > 200) { |
| victorhlvsilva | 0:7e80907da2dc | 40 | SW2 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 41 | debounceSW2Fall.reset(); |
| victorhlvsilva | 0:7e80907da2dc | 42 | pc.printf("DSW2Fall \n\r"); |
| victorhlvsilva | 0:7e80907da2dc | 43 | } |
| victorhlvsilva | 0:7e80907da2dc | 44 | } |
| victorhlvsilva | 0:7e80907da2dc | 45 | |
| victorhlvsilva | 0:7e80907da2dc | 46 | void DSW1Rise(){ |
| victorhlvsilva | 0:7e80907da2dc | 47 | if (debounceSW1Rise.read_ms() > 200) { |
| victorhlvsilva | 0:7e80907da2dc | 48 | if(avanco.read_ms() >= 500) { |
| victorhlvsilva | 0:7e80907da2dc | 49 | avanco.stop(); |
| victorhlvsilva | 0:7e80907da2dc | 50 | avanco.reset(); |
| victorhlvsilva | 0:7e80907da2dc | 51 | } |
| victorhlvsilva | 0:7e80907da2dc | 52 | else if(avanco.read_ms() < 500){ |
| victorhlvsilva | 0:7e80907da2dc | 53 | SW1 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 54 | } |
| victorhlvsilva | 0:7e80907da2dc | 55 | debounceSW1Rise.reset(); |
| victorhlvsilva | 0:7e80907da2dc | 56 | pc.printf("DSW1Rise \n\r"); |
| victorhlvsilva | 0:7e80907da2dc | 57 | } |
| victorhlvsilva | 0:7e80907da2dc | 58 | } |
| victorhlvsilva | 0:7e80907da2dc | 59 | |
| victorhlvsilva | 0:7e80907da2dc | 60 | void DSW2Rise(){ |
| victorhlvsilva | 0:7e80907da2dc | 61 | if (debounceSW2Rise.read_ms() > 200) { |
| victorhlvsilva | 0:7e80907da2dc | 62 | SW2 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 63 | debounceSW2Rise.reset(); |
| victorhlvsilva | 0:7e80907da2dc | 64 | pc.printf("DSW2Rise \n\r"); |
| victorhlvsilva | 0:7e80907da2dc | 65 | } |
| victorhlvsilva | 0:7e80907da2dc | 66 | } |
| victorhlvsilva | 0:7e80907da2dc | 67 | |
| victorhlvsilva | 0:7e80907da2dc | 68 | int main() { |
| victorhlvsilva | 0:7e80907da2dc | 69 | debounceSW1Fall.start(); |
| victorhlvsilva | 0:7e80907da2dc | 70 | debounceSW2Fall.start(); |
| victorhlvsilva | 0:7e80907da2dc | 71 | debounceSW1Rise.start(); |
| victorhlvsilva | 0:7e80907da2dc | 72 | debounceSW2Rise.start(); |
| victorhlvsilva | 0:7e80907da2dc | 73 | |
| victorhlvsilva | 0:7e80907da2dc | 74 | botao_SW1.rise(&DSW1Rise); |
| victorhlvsilva | 0:7e80907da2dc | 75 | botao_SW1.fall(&DSW1Fall); |
| victorhlvsilva | 0:7e80907da2dc | 76 | botao_SW2.rise(&DSW2Rise); |
| victorhlvsilva | 0:7e80907da2dc | 77 | botao_SW2.fall(&DSW2Fall); |
| victorhlvsilva | 0:7e80907da2dc | 78 | |
| victorhlvsilva | 0:7e80907da2dc | 79 | while(1){ |
| victorhlvsilva | 0:7e80907da2dc | 80 | |
| victorhlvsilva | 0:7e80907da2dc | 81 | Corrente = 3.3f*Shunt; |
| victorhlvsilva | 0:7e80907da2dc | 82 | |
| victorhlvsilva | 0:7e80907da2dc | 83 | if (Corrente > 0.7f){ |
| victorhlvsilva | 0:7e80907da2dc | 84 | if (IN1 && !IN2){ |
| victorhlvsilva | 0:7e80907da2dc | 85 | saida_IN1 = IN2; |
| victorhlvsilva | 0:7e80907da2dc | 86 | saida_IN2 = IN1; |
| victorhlvsilva | 0:7e80907da2dc | 87 | wait_ms(250); |
| victorhlvsilva | 0:7e80907da2dc | 88 | } |
| victorhlvsilva | 0:7e80907da2dc | 89 | else if (IN2 && !IN1){ |
| victorhlvsilva | 0:7e80907da2dc | 90 | saida_IN1 = IN2; |
| victorhlvsilva | 0:7e80907da2dc | 91 | saida_IN2 = IN1; |
| victorhlvsilva | 0:7e80907da2dc | 92 | wait_ms(250); |
| victorhlvsilva | 0:7e80907da2dc | 93 | } |
| victorhlvsilva | 0:7e80907da2dc | 94 | saida_IN1 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 95 | saida_IN2 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 96 | SW1 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 97 | SW2 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 98 | wait_ms(1000); |
| victorhlvsilva | 0:7e80907da2dc | 99 | } |
| victorhlvsilva | 0:7e80907da2dc | 100 | |
| victorhlvsilva | 0:7e80907da2dc | 101 | if (SW1 == 0){ |
| victorhlvsilva | 0:7e80907da2dc | 102 | IN1 = 1; IN2 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 103 | saida_EN = 1; |
| victorhlvsilva | 0:7e80907da2dc | 104 | saida_IN1 = IN1; |
| victorhlvsilva | 0:7e80907da2dc | 105 | saida_IN2 = IN2; |
| victorhlvsilva | 0:7e80907da2dc | 106 | wait(0.01); |
| victorhlvsilva | 0:7e80907da2dc | 107 | } |
| victorhlvsilva | 0:7e80907da2dc | 108 | |
| victorhlvsilva | 0:7e80907da2dc | 109 | else if (SW2 == 0){ |
| victorhlvsilva | 0:7e80907da2dc | 110 | IN1 = 0; IN2 = 1; |
| victorhlvsilva | 0:7e80907da2dc | 111 | saida_EN = 1; |
| victorhlvsilva | 0:7e80907da2dc | 112 | saida_IN1 = IN1; |
| victorhlvsilva | 0:7e80907da2dc | 113 | saida_IN2 = IN2; |
| victorhlvsilva | 0:7e80907da2dc | 114 | wait(0.01); |
| victorhlvsilva | 0:7e80907da2dc | 115 | } |
| victorhlvsilva | 0:7e80907da2dc | 116 | else { |
| victorhlvsilva | 0:7e80907da2dc | 117 | IN1 = 0; IN2 = 0; |
| victorhlvsilva | 0:7e80907da2dc | 118 | saida_EN = 0; |
| victorhlvsilva | 0:7e80907da2dc | 119 | saida_IN1 = IN1; |
| victorhlvsilva | 0:7e80907da2dc | 120 | saida_IN2 = IN2; |
| victorhlvsilva | 0:7e80907da2dc | 121 | wait(0.01); |
| victorhlvsilva | 0:7e80907da2dc | 122 | } |
| victorhlvsilva | 0:7e80907da2dc | 123 | wait(0.01); |
| victorhlvsilva | 0:7e80907da2dc | 124 | pc.printf("Timer: %.2f s \n\r", avanco.read()); |
| victorhlvsilva | 0:7e80907da2dc | 125 | } |
| victorhlvsilva | 0:7e80907da2dc | 126 | } |