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 4:3bc68a7b299d, committed 2022-12-01
- Comitter:
- isabellemm
- Date:
- Thu Dec 01 19:39:01 2022 +0000
- Parent:
- 3:2b261e3c05db
- Commit message:
- SIMPLES
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Thu Dec 01 19:39:01 2022 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/tohatsp/code/TextLCD/#7fd377de8c67
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gabs.txt Thu Dec 01 19:39:01 2022 +0000
@@ -0,0 +1,148 @@
+/*******************************************
+Motor de Passo
+*******************************************/
+#include "mbed.h"
+
+// motor de passo
+DigitalOut EN_A(D2);
+DigitalOut IN1_A(D5);
+DigitalOut IN2_A(D4);
+DigitalOut EN_B(A4);
+DigitalOut IN1_B(A0);
+DigitalOut IN2_B(A1);
+
+DigitalOut led(LED1);
+
+InterruptIn enable(PB_6);
+int estado = 0;
+Timer debounce;
+
+// botões retentivos
+DigitalIn dir(D9);
+
+AnalogIn POT(A5);
+float tempo;
+
+void muda_en(){
+ if (debounce.read_ms()>200){
+ estado=!estado;
+ }
+ debounce.reset();
+}
+
+void queda(){
+ debounce.reset();
+}
+
+int main(){
+ enable.rise(&muda_en);
+ debounce.start();
+
+ // configurações iniciais
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+
+ while(1) {
+
+ if (estado == 1){
+ tempo = 0.005+(0.05*POT.read());
+
+ //SENTIDO HORÁRIO
+ if (dir.read() == 0){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+ }
+
+ //SENTIDO ANTI-HORÁRIO
+ else if (dir.read() == 1){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1 ("passo 3")
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3 ("passo 1")
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+ }
+ }
+
+ else{
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+ }
+ }
+}
+
+
+
+
--- a/main.cpp Wed Mar 09 14:17:24 2022 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#include "mbed.h"
-
-DigitalOut led(D13);
-
-int main(void) {
- while(1) {
- led = 1; //LED on
- wait(0.5);
- led = 0; //LED off
- wait(0.5);
- }
-}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/moto_passo_v2.txt Thu Dec 01 19:39:01 2022 +0000
@@ -0,0 +1,180 @@
+/*******************************************
+Motor de Passo
+*******************************************/
+#include "mbed.h"
+
+Serial envia(PC_10, PC_11);
+Serial pc(USBTX, USBRX);
+
+// variáveis
+int estado = 0;
+float tempo;
+char ligar = 'a';
+char desligar = 'b';
+char men_rec;
+
+// motor de passo
+DigitalOut EN_A(D2);
+DigitalOut IN1_A(D5);
+DigitalOut IN2_A(D4);
+DigitalOut EN_B(A4);
+DigitalOut IN1_B(A0);
+DigitalOut IN2_B(A1);
+
+// entradas
+InterruptIn ena_all(D11);
+InterruptIn enable(PB_6);
+DigitalIn dir(D9);
+AnalogIn POT(A5);
+
+// debouncing
+Timer debounce;
+
+
+void muda_en(){
+ if (debounce.read_ms()>200){
+ estado=!estado;
+ }
+ debounce.reset();
+}
+
+
+void muda_all(){
+ //men_rec = envia.getc();
+ if (debounce.read_ms()>200){
+ if (estado == 1 || men_rec == 'c'){ // ou
+ estado = 0;
+ envia.printf("%c", desligar);
+ }
+ else{
+ estado = 1;
+ envia.printf("%c", ligar);
+ }
+ }
+ debounce.reset();
+}
+
+void queda(){
+ debounce.reset();
+}
+
+void RX_interrupt(){
+ while (envia.readable()){
+ men_rec = envia.getc();
+ }
+}
+
+int main(){
+ enable.rise(&muda_en);
+ ena_all.rise(&muda_all);
+ debounce.start();
+ envia.baud(9600);
+ envia.attach(&RX_interrupt, Serial::RxIrq);
+
+ // configurações iniciais
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+
+ while(1) {
+ //men_rec = envia.getc();
+
+ if (estado == 1){
+ if (POT.read()>0.1f){
+ tempo = 0.005+(0.050*POT.read());
+
+ //SENTIDO HORÁRIO
+ if (dir.read() == 0){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+ }
+
+ //SENTIDO ANTI-HORÁRIO
+ else if (dir.read() == 1){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1 ("passo 3")
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3 ("passo 1")
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+ }
+ }
+ }
+
+ else{
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+ }
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/motor_passo.txt Thu Dec 01 19:39:01 2022 +0000
@@ -0,0 +1,157 @@
+/*******************************************
+Motor de Passo
+*******************************************/
+#include "mbed.h"
+
+Serial pc(USBTX, USBRX);
+Serial micro(p9, p10);
+
+char M2_on [2] = "A";
+char M2_off [2] = "B";
+//char M2_hor [2] = "A0";
+//char M2_anti [2] = "A1";
+
+// motor de passo
+DigitalOut EN_A(D2);
+DigitalOut IN1_A(D5);
+DigitalOut IN2_A(D4);
+DigitalOut EN_B(A4);
+DigitalOut IN1_B(A0);
+DigitalOut IN2_B(A1);
+
+DigitalOut led(LED1);
+
+InterruptIn enable(PB_6);
+int estado = 0;
+Timer debounce;
+
+// botões retentivos
+DigitalIn dir(D9);
+
+AnalogIn POT(A5);
+float tempo;
+
+void muda_en(){
+ if (debounce.read_ms()>200){
+ estado=!estado;
+ }
+ debounce.reset();
+}
+
+void queda(){
+ debounce.reset();
+}
+
+int main(){
+ enable.rise(&muda_en);
+ debounce.start();
+
+ // configurações iniciais
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+
+ while(1) {
+
+ if (estado == 1){
+ //scanf("%1s", M2_on);
+ printf("%1s\n",M2_on);
+ tempo = 0.005+(0.05*POT.read());
+
+ //SENTIDO HORÁRIO
+ if (dir.read() == 0){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+ }
+
+ //SENTIDO ANTI-HORÁRIO
+ else if (dir.read() == 1){
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1 ("passo 3")
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3 ("passo 1")
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+ }
+ }
+
+ else{
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+ printf("%1s\n",M2_off);
+ }
+ }
+}
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/motor_passp_v3.txt Thu Dec 01 19:39:01 2022 +0000
@@ -0,0 +1,161 @@
+/*******************************************
+Motor de Passo
+*******************************************/
+#include "mbed.h"
+
+Serial envia(PC_10, PC_11);
+Serial pc(USBTX, USBRX);
+
+// variáveis
+int estado = 0;
+float tempo;
+char desligar = 'a';
+char cte = 'b';
+
+// motor de passo
+DigitalOut EN_A(D2);
+DigitalOut IN1_A(D5);
+DigitalOut IN2_A(D4);
+DigitalOut EN_B(A4);
+DigitalOut IN1_B(A0);
+DigitalOut IN2_B(A1);
+
+// entradas
+InterruptIn ena_all(D11);
+InterruptIn enable(PB_6);
+DigitalIn dir(D9);
+AnalogIn POT(A5);
+
+// debouncing
+Timer debounce;
+
+
+void muda_en(){
+ if (debounce.read_ms()>200){
+ estado=!estado;
+ }
+ debounce.reset();
+}
+
+
+void muda_all(){
+ envia.printf("%c", desligar);
+ pc.printf("%c", desligar);
+ estado = 0;
+ debounce.reset();
+}
+
+int main(){
+ enable.rise(&muda_en);
+ ena_all.rise(&muda_all);
+ debounce.start();
+ envia.baud(115200);
+ pc.baud(115200);
+
+ // configurações iniciais
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+
+ while(1) {
+ //envia.printf("%c", cte);
+ pc.printf("%c", cte);
+ envia.putc('b');
+
+ if (estado == 1){
+ tempo = 0.005+(0.050*POT.read());
+
+ //SENTIDO HORÁRIO
+ if (dir.read() == 0){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+ }
+
+ //SENTIDO ANTI-HORÁRIO
+ else if (dir.read() == 1){
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1 ("passo 3")
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3 ("passo 1")
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+ }
+ }
+
+ else{
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+ }
+ }
+}
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/passo.cpp Thu Dec 01 19:39:01 2022 +0000
@@ -0,0 +1,163 @@
+/*******************************************
+Motor de Passo
+*******************************************/
+
+#include "mbed.h"
+
+Serial pc(USBTX, USBRX);
+
+// variáveis
+int estado = 0;
+float tempo;
+char ligado = 'c';
+char desligado = 'd';
+char hor = 'h';
+char antihor = 't';
+
+// motor de passo
+DigitalOut EN_A(D2);
+DigitalOut IN1_A(D5);
+DigitalOut IN2_A(D4);
+DigitalOut EN_B(A4);
+DigitalOut IN1_B(A0);
+DigitalOut IN2_B(A1);
+
+// entradas
+InterruptIn ena_all(D11);
+InterruptIn enable(PB_6);
+DigitalIn dir(D9);
+AnalogIn POT(A5);
+
+// debouncing
+Timer debounce;
+
+
+void muda_en(){
+ if (debounce.read_ms()>200){
+ estado=!estado;
+ }
+ debounce.reset();
+}
+
+
+void muda_all(){
+ //pc.printf("%c", desligar);
+ estado = 0;
+ debounce.reset();
+}
+
+int main(){
+ enable.rise(&muda_en);
+ ena_all.rise(&muda_all);
+ debounce.start();
+ pc.baud(115200);
+
+ // configurações iniciais
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+
+ while(1) {
+
+ if (estado == 1){
+ tempo = 0.002+(0.050*POT.read());
+ //pc.printf("%c", ligado);
+
+ //SENTIDO HORÁRIO
+ if (dir.read() == 0){
+ //pc.printf("%c", hor);
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+ }
+
+ //SENTIDO ANTI-HORÁRIO
+ else if (dir.read() == 1){
+ //pc.printf("%c", antihor);
+
+ // passo 0
+ EN_A = 1;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 0;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+
+ // passo 1 ("passo 3")
+ EN_A = 0;
+ IN1_A = 1;
+ IN2_A = 0;
+ EN_B = 1;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 2
+ EN_A = 1;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 0;
+ IN1_B = 0;
+ IN2_B = 1;
+ wait(tempo);
+
+ // passo 3 ("passo 1")
+ EN_A = 0;
+ IN1_A = 0;
+ IN2_A = 1;
+ EN_B = 1;
+ IN1_B = 1;
+ IN2_B = 0;
+ wait(tempo);
+ }
+ }
+
+ else{
+ //pc.printf("%c", desligado);
+
+ EN_A = 0;
+ EN_B = 0;
+ IN1_A = 0;
+ IN2_A = 0;
+ IN1_A = 0;
+ IN1_B = 0;
+ }
+ }
+}
\ No newline at end of file