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:
- bispomat
- Date:
- 2019-11-21
- Revision:
- 1:7198bf0747eb
- Parent:
- 0:8ee013fa99a5
File content as of revision 1:7198bf0747eb:
#include "mbed.h"
PwmOut pwm(p25);
DigitalOut dir (p26);
PwmOut pwm1(p24);
DigitalOut dir1 (p23);
DigitalIn button(p18);
DigitalOut led(p20);
Serial bt(p28, p27);
InterruptIn A (p29);
DigitalIn B (p30);
Ticker END;
int rightCount = 0;
int lastCount = 0;
int aux = 0;
void rightEncoderEvent (){
if (B.read() == 0){
rightCount++;
}
else{
rightCount--;
}
}
void Speed (void) {
int realSpeed = (rightCount - lastCount);
lastCount = rightCount;
//bt.printf("\n\rCount: %d ## Speed: %d",rightCount,realSpeed);
}
int main() {
char ch;
int speed = 1;
bt.baud(9600);
A.rise(&rightEncoderEvent);
END.attach(&Speed, 1.0);
pwm.period(0.01f);
pwm1.period(0.01f);
while (button.read()) {led = 1; wait(0.2); led=0; wait(0.2); }
wait(2);
pwm.write(0.0f);
pwm1.write(0.0f);
bt.printf("Funcionando!");
while(1) {
if(bt.readable())
{
ch=bt.getc();
if (ch == 'l') { led = !led;}
if (ch == 'w') { dir = 0; dir1 = 0; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait (0.02);}
if (ch == 's') { dir = 1; dir1 = 1; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
if (ch == 'a') { dir = 0; dir1 = 1; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
if (ch == 'd') { dir = 1; dir1 = 0; pwm.write((0.2*speed)); pwm1.write((0.2*speed)); wait(0.02);}
if (ch == 'g') {
//bt.printf("\n\rChose speed: ");
//bt.printf("Entrei no Go");
while(aux == 0) {
dir = 0; dir1 = 0; pwm.write(1); pwm1.write(1); wait (0.02);
ch = bt.getc();
if (ch == 'q') { bt.printf("Entrei no if pra sair do Go"); pwm.write(0); pwm1.write(0); aux = 1; }
}
bt.printf("Sai do while");
aux = 0;
}
//speed = (int)ch - 48;
//bt.printf("\n\rActual speed: %d\n",speed);}
//bt.printf("%c",ch);
}
//bt.printf("Count: ");
//bt.printf("%d",rightCount);
//bt.printf("\r\n");
/*
if (ch == 'S') { dir = 0; dir1 = 0; pwm.write(0.0f); pwm1.write(0.0f); }
if (ch == 'F') { dir = 0; dir1 = 0; pwm.write(0.2f); pwm1.write(0.2f); }
if (ch == 'G') { dir = 1; dir1 = 1; pwm.write(0.2f); pwm1.write(0.2f); }
if (ch == 'L') { dir = 0; dir1 = 1; pwm.write(0.2f); pwm1.write(0.2f); }
if (ch == 'R') { dir = 1; dir1 = 0; pwm.write(0.2f); pwm1.write(0.2f); }
*/
pwm.write(0.0f);
pwm1.write(0.0f);
/*wait(0.5);
dir = 1;
dir1 = 1;
pwm.write(0.5f);
pwm1.write(0.5f);
wait(0.5);
dir = 0;
dir1 = 0;
pwm.write(0.5f);
wait(0.5);*/
}
//bt.printf("Sai do while");
}