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@2:db9758288981, 2021-02-11 (annotated)
- Committer:
- rafaelff3
- Date:
- Thu Feb 11 20:48:29 2021 +0000
- Revision:
- 2:db9758288981
- Parent:
- 0:3ccb476208f5
Teste
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
diogonac | 0:3ccb476208f5 | 1 | #include "mbed.h" |
diogonac | 0:3ccb476208f5 | 2 | #include "MPU6050.h" |
diogonac | 0:3ccb476208f5 | 3 | Serial pc(USBTX, USBRX); |
diogonac | 0:3ccb476208f5 | 4 | MPU6050 MPU6050(D14, D15); |
diogonac | 0:3ccb476208f5 | 5 | float aceleracao[3]; |
diogonac | 0:3ccb476208f5 | 6 | float giroscopio[3]; |
diogonac | 0:3ccb476208f5 | 7 | int giroscopio_raw[3]; |
diogonac | 0:3ccb476208f5 | 8 | int aceleracao_raw[3]; |
diogonac | 0:3ccb476208f5 | 9 | |
diogonac | 0:3ccb476208f5 | 10 | //----------Taxa de amostragem---------- |
diogonac | 0:3ccb476208f5 | 11 | Timer t_dados; // timer para taxa de aquisicao dos dados |
diogonac | 0:3ccb476208f5 | 12 | Timer t_tempo; |
diogonac | 0:3ccb476208f5 | 13 | Timer tempo; |
diogonac | 0:3ccb476208f5 | 14 | Ticker clockzin; |
diogonac | 0:3ccb476208f5 | 15 | int timer_ms; |
diogonac | 0:3ccb476208f5 | 16 | int tx_aquisicao; //quantos pontos serao plotados em um segundo |
diogonac | 0:3ccb476208f5 | 17 | int t_amostragem; //valor do timer do Main |
diogonac | 0:3ccb476208f5 | 18 | int t_amostragem_tempo; |
diogonac | 0:3ccb476208f5 | 19 | int tempo_ms; |
diogonac | 0:3ccb476208f5 | 20 | int second = 0; |
diogonac | 0:3ccb476208f5 | 21 | int minute = 0; |
diogonac | 0:3ccb476208f5 | 22 | int hour = 0; |
diogonac | 0:3ccb476208f5 | 23 | |
diogonac | 0:3ccb476208f5 | 24 | void relogio() |
diogonac | 0:3ccb476208f5 | 25 | { |
diogonac | 0:3ccb476208f5 | 26 | timer_ms++; |
diogonac | 0:3ccb476208f5 | 27 | } |
diogonac | 0:3ccb476208f5 | 28 | |
diogonac | 0:3ccb476208f5 | 29 | int main() |
diogonac | 0:3ccb476208f5 | 30 | { |
diogonac | 0:3ccb476208f5 | 31 | pc.baud(115200); |
diogonac | 0:3ccb476208f5 | 32 | tx_aquisicao = 80; |
diogonac | 0:3ccb476208f5 | 33 | t_dados.start(); |
diogonac | 0:3ccb476208f5 | 34 | t_tempo.start(); |
diogonac | 0:3ccb476208f5 | 35 | tempo.start(); |
diogonac | 0:3ccb476208f5 | 36 | clockzin.attach(&relogio,0.001f); //relogio |
diogonac | 0:3ccb476208f5 | 37 | pc.printf("Iniciando\r\n"); |
diogonac | 0:3ccb476208f5 | 38 | |
diogonac | 0:3ccb476208f5 | 39 | if(MPU6050.testConnection() == 1) { |
diogonac | 0:3ccb476208f5 | 40 | |
diogonac | 0:3ccb476208f5 | 41 | pc.printf("MPU6050 - Status: OK\r\n"); |
diogonac | 0:3ccb476208f5 | 42 | |
diogonac | 0:3ccb476208f5 | 43 | } else { |
diogonac | 0:3ccb476208f5 | 44 | |
diogonac | 0:3ccb476208f5 | 45 | pc.printf("MPU6050 - Status: Sem resposta \r\n"); |
diogonac | 0:3ccb476208f5 | 46 | |
diogonac | 0:3ccb476208f5 | 47 | } |
diogonac | 0:3ccb476208f5 | 48 | |
diogonac | 0:3ccb476208f5 | 49 | MPU6050.setAcceleroRange(MPU6050_ACCELERO_RANGE_2G); |
diogonac | 0:3ccb476208f5 | 50 | MPU6050.setGyroRange(MPU6050_GYRO_RANGE_250); |
diogonac | 0:3ccb476208f5 | 51 | |
diogonac | 0:3ccb476208f5 | 52 | while (1) { |
diogonac | 0:3ccb476208f5 | 53 | |
diogonac | 0:3ccb476208f5 | 54 | t_amostragem = t_dados.read_us(); |
diogonac | 0:3ccb476208f5 | 55 | t_amostragem_tempo = t_tempo.read_us(); |
diogonac | 0:3ccb476208f5 | 56 | tempo_ms = tempo.read_ms(); |
diogonac | 0:3ccb476208f5 | 57 | if (t_amostragem >= 1000000/tx_aquisicao) { |
diogonac | 0:3ccb476208f5 | 58 | t_dados.reset(); |
diogonac | 0:3ccb476208f5 | 59 | MPU6050.getAccelero(aceleracao); |
diogonac | 0:3ccb476208f5 | 60 | MPU6050.getGyro(giroscopio); |
diogonac | 0:3ccb476208f5 | 61 | MPU6050.getGyroRaw(giroscopio_raw); |
diogonac | 0:3ccb476208f5 | 62 | MPU6050.getAcceleroRaw(aceleracao_raw); |
diogonac | 0:3ccb476208f5 | 63 | // pc.printf("Aceleracao-X=%0.5f, Aceleracao-Y=%0.5f, Aceleracao-Z=%0.5f,", aceleracao[0], aceleracao[1], aceleracao[2]); |
diogonac | 0:3ccb476208f5 | 64 | // pc.printf("Giroscopio-X=%0.5f, Giroscopio-Y=%0.5f, Giroscopio-Z=%0.5f \r\n", giroscopio[0], giroscopio[1], giroscopio[2]); |
diogonac | 0:3ccb476208f5 | 65 | pc.printf("AX%f, AY%f, AZ%f, GX%f, GY%f, GZ%f\n", aceleracao[0], aceleracao[1], aceleracao[2], giroscopio[0], giroscopio[1], giroscopio[2]); |
diogonac | 0:3ccb476208f5 | 66 | |
diogonac | 0:3ccb476208f5 | 67 | |
diogonac | 0:3ccb476208f5 | 68 | } |
diogonac | 0:3ccb476208f5 | 69 | |
diogonac | 0:3ccb476208f5 | 70 | if (timer_ms >999) { |
diogonac | 0:3ccb476208f5 | 71 | timer_ms = 0; |
diogonac | 0:3ccb476208f5 | 72 | second++; |
diogonac | 0:3ccb476208f5 | 73 | } |
diogonac | 0:3ccb476208f5 | 74 | if(second > 59) { |
diogonac | 0:3ccb476208f5 | 75 | second = 0; |
diogonac | 0:3ccb476208f5 | 76 | minute++; |
diogonac | 0:3ccb476208f5 | 77 | } |
diogonac | 0:3ccb476208f5 | 78 | |
diogonac | 0:3ccb476208f5 | 79 | if(minute > 59) { |
diogonac | 0:3ccb476208f5 | 80 | minute = 0; |
diogonac | 0:3ccb476208f5 | 81 | hour++; |
diogonac | 0:3ccb476208f5 | 82 | } |
diogonac | 0:3ccb476208f5 | 83 | } |
rafaelff3 | 2:db9758288981 | 84 | } //teste |