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.
Revision 0:151779163032, committed 2021-11-12
- Comitter:
- zezo
- Date:
- Fri Nov 12 02:30:49 2021 +0000
- Commit message:
- APS 3;
Changed in this revision
diff -r 000000000000 -r 151779163032 .gitignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Fri Nov 12 02:30:49 2021 +0000 @@ -0,0 +1,4 @@ +.build +.mbed +projectfiles +*.py*
diff -r 000000000000 -r 151779163032 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri Nov 12 02:30:49 2021 +0000
@@ -0,0 +1,113 @@
+#include "mbed.h"
+
+// pinos placa IHM07M1 - Usa para PWM
+PwmOut IN_1 (PA_8);
+PwmOut IN_2 (PA_9);
+PwmOut IN_3 (PA_10);
+
+// pinos placa IHM07M1 ENABLE
+DigitalOut EN_1 (PC_10);
+DigitalOut EN_2 (PC_11);
+DigitalOut EN_3 (PC_12);
+
+// Botão de usuário
+DigitalIn botao (USER_BUTTON);
+
+// Potenciômetro
+AnalogIn pot (PB_1);
+
+float pot_read;// Recebe o valor do potenciometro
+float tempo_pot;// Tempo para alternar entre as bobinas em funcao do potenciometro - Controla a velocidade do motor
+
+float tempo = 0.006; // Tempo base para alternar entre as bobinas - Controla a velocidade do motor
+float potencia = 1; // Duty Cycle do PWM - Controla o torque do motor
+bool funciona = 0;
+
+int main()
+{
+ // configurações iniciais
+ IN_1.period_ms(1); // PWM
+ IN_2.period_ms(1); // PWM
+ IN_3.period_ms(1); // PWM
+
+ while(1) {
+
+ pot_read = pot.read();
+// printf("pot= %1.2f\n\r",pot_read);
+ tempo_pot = tempo - tempo*pot_read/1.5; //Controla o tempo para alternar entre bobinas
+ potencia = pot_read/5 + 0.75; //Controla o DC do PWM para aumentar o torque confome o potenciômetro
+// printf("tempo= %1.5f\n\r",tempo_pot);
+
+ if (botao == 0) { //Se botão de usuário for pressionado liga o motor
+ funciona = 1;
+ wait(0.5);
+ }
+ if (funciona == 0) { //Motor desligado
+
+ EN_1 = 2; // Braço 1 (A)
+ EN_2 = 2; // Braço 2 (B)
+ EN_3 = 2; // Braço 3 (C)
+ IN_1.write(0); // PWM com valor 0%
+ IN_2.write(0); // PWM com valor 0%
+ IN_3.write(0); // PWM com valor 0%
+ }
+
+ if (funciona == 1) { //Motor Ligado
+
+ // 1º
+ EN_1 = 1; // Braço 1 (A)
+ EN_2 = 2; // Braço 2 (B)
+ EN_3 = 2; // Braço 3 (C)
+ IN_1.write(potencia); // PWM com valor do DC
+ IN_2.write(0); // PWM com valor 0%
+ IN_3.write(0); // PWM com valor 0%
+ wait(tempo_pot); //Espera tempo para mudar de bobina
+ // 2º
+ EN_1 = 2; // Braço 1 (A)
+ EN_2 = 2; // Braço 2 (B)
+ EN_3 = 0; // Braço 3 (C)
+ IN_1.write(0); // PWM com valor 0%
+ IN_2.write(0); // PWM com valor 0%
+ IN_3.write(potencia); // PWM com valor do DC
+ wait(tempo_pot); //Espera tempo para mudar de bobina
+
+ // 3º
+ EN_1 = 2; // Braço 1 (A)
+ EN_2 = 1; // Braço 2 (B)
+ EN_3 = 2; // Braço 3 (C)
+ IN_1.write(0); // PWM com valor 0%
+ IN_2.write(potencia); // PWM com valor do DC
+ IN_3.write(0); // PWM com valor 0%
+ wait(tempo_pot); //Espera tempo para mudar de bobina
+ // 4º
+ EN_1 = 0; // Braço 1 (A)
+ EN_2 = 2; // Braço 2 (B)
+ EN_3 = 2; // Braço 3 (C)
+ IN_1.write(potencia); // PWM com valor do DC
+ IN_2.write(0); // PWM com valor 0%
+ IN_3.write(0); // PWM com valor 0%
+ wait(tempo_pot); //Espera tempo para mudar de bobina
+ // 5º
+ EN_1 = 2; // Braço 1 (A)
+ EN_2 = 2; // Braço 2 (B)
+ EN_3 = 1; // Braço 3 (C)
+ IN_1.write(0); // PWM com valor 0%
+ IN_2.write(0); // PWM com valor 0%
+ IN_3.write(potencia); // PWM com valor do DC
+ wait(tempo_pot); //Espera tempo para mudar de bobina
+ //6º
+ EN_1 = 2; // Braço 1 (A)
+ EN_2 = 0; // Braço 2 (B)
+ EN_3 = 2; // Braço 3 (C)
+ IN_1.write(0); // PWM com valor 0%
+ IN_2.write(potencia); // PWM com valor do DC
+ IN_3.write(0); // PWM com valor 0%
+ wait(tempo_pot); //Espera tempo para mudar de bobina
+
+ if (botao == 0) { // Se bot˜åo de usuário for pressionado desliga o motor
+ funciona = 0;
+ wait(0.5);
+ }
+ }
+ }
+}
\ No newline at end of file
diff -r 000000000000 -r 151779163032 mbed-os.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Fri Nov 12 02:30:49 2021 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#cf4f12a123c05fcae83fc56d76442015cb8a39e9