Henrique Rosa
/
ILI9341_01_PAR8_Teste_V5
Escrevendo um sinal analógico ( Seno e Cosseno) no display TFT
main.cpp@3:2d8f54d22dbd, 2021-04-27 (annotated)
- Committer:
- henriquer
- Date:
- Tue Apr 27 21:18:52 2021 +0000
- Revision:
- 3:2d8f54d22dbd
- Parent:
- 2:f603020cd6ec
Escrevendo um sinal analogico ( Seno e Cosseno) no display TFT
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
henriquer | 3:2d8f54d22dbd | 1 | // ****** Henrique ****** 24/04/21 |
henriquer | 3:2d8f54d22dbd | 2 | // Escrevendo um sinal analógico ( Seno e Cosseno) no display TFT |
henriquer | 3:2d8f54d22dbd | 3 | // obs. Nesse código não sendo usado a função para limpar o display. |
henriquer | 3:2d8f54d22dbd | 4 | // ************** Display TFT- ILI9341 Versão V 4************** \\ |
henriquer | 2:f603020cd6ec | 5 | |
henriquer | 2:f603020cd6ec | 6 | |
henriquer | 2:f603020cd6ec | 7 | |
silviosz | 0:d4d4998d71d5 | 8 | |
silviosz | 0:d4d4998d71d5 | 9 | #include "Arduino.h" |
silviosz | 0:d4d4998d71d5 | 10 | #include <MCUFRIEND_kbv.h> |
henriquer | 3:2d8f54d22dbd | 11 | AnalogIn var (A5); |
silviosz | 0:d4d4998d71d5 | 12 | MCUFRIEND_kbv tft; |
silviosz | 0:d4d4998d71d5 | 13 | Serial pc(SERIAL_TX, SERIAL_RX); |
henriquer | 2:f603020cd6ec | 14 | |
henriquer | 3:2d8f54d22dbd | 15 | // Tabela de cores |
silviosz | 0:d4d4998d71d5 | 16 | #define BLACK 0x0000 |
silviosz | 0:d4d4998d71d5 | 17 | #define BLUE 0x001F |
silviosz | 0:d4d4998d71d5 | 18 | #define RED 0xF800 |
silviosz | 0:d4d4998d71d5 | 19 | #define GREEN 0x07E0 |
silviosz | 0:d4d4998d71d5 | 20 | #define CYAN 0x07FF |
silviosz | 0:d4d4998d71d5 | 21 | #define MAGENTA 0xF81F |
silviosz | 0:d4d4998d71d5 | 22 | #define YELLOW 0xFFE0 |
silviosz | 0:d4d4998d71d5 | 23 | #define WHITE 0xFFFF |
silviosz | 0:d4d4998d71d5 | 24 | #define GRAY 0x8410 |
henriquer | 2:f603020cd6ec | 25 | |
henriquer | 3:2d8f54d22dbd | 26 | int deslc = 0; |
henriquer | 2:f603020cd6ec | 27 | |
silviosz | 0:d4d4998d71d5 | 28 | void setup() |
silviosz | 0:d4d4998d71d5 | 29 | { |
silviosz | 0:d4d4998d71d5 | 30 | uint16_t ID = tft.readID(); // |
silviosz | 0:d4d4998d71d5 | 31 | tft.begin(ID); |
silviosz | 0:d4d4998d71d5 | 32 | } |
henriquer | 2:f603020cd6ec | 33 | |
henriquer | 3:2d8f54d22dbd | 34 | // Função para criação das linhas |
henriquer | 3:2d8f54d22dbd | 35 | void linhas () |
silviosz | 0:d4d4998d71d5 | 36 | { |
henriquer | 2:f603020cd6ec | 37 | |
henriquer | 3:2d8f54d22dbd | 38 | tft.drawLine(95,350,95,0,GRAY); // valores das coordenadas e inclinação |
henriquer | 3:2d8f54d22dbd | 39 | |
henriquer | 3:2d8f54d22dbd | 40 | tft.drawLine(45,350,45,0,GRAY); |
henriquer | 2:f603020cd6ec | 41 | |
silviosz | 0:d4d4998d71d5 | 42 | } |
henriquer | 2:f603020cd6ec | 43 | |
henriquer | 2:f603020cd6ec | 44 | |
henriquer | 2:f603020cd6ec | 45 | |
henriquer | 3:2d8f54d22dbd | 46 | void signal() |
henriquer | 3:2d8f54d22dbd | 47 | { |
henriquer | 3:2d8f54d22dbd | 48 | |
henriquer | 3:2d8f54d22dbd | 49 | |
henriquer | 3:2d8f54d22dbd | 50 | |
henriquer | 3:2d8f54d22dbd | 51 | tft.fillScreen(BLACK); // Tela de Fundo |
henriquer | 3:2d8f54d22dbd | 52 | linhas(); |
henriquer | 3:2d8f54d22dbd | 53 | double s; // Variável s e L com ponto flutuante com precisão |
henriquer | 3:2d8f54d22dbd | 54 | double L; |
henriquer | 3:2d8f54d22dbd | 55 | |
henriquer | 3:2d8f54d22dbd | 56 | while (1) { |
henriquer | 3:2d8f54d22dbd | 57 | |
henriquer | 3:2d8f54d22dbd | 58 | pc.printf ("valor %d\n\r",deslc); |
henriquer | 3:2d8f54d22dbd | 59 | delay(0.5); |
henriquer | 3:2d8f54d22dbd | 60 | for (int i=0; i<360; i++) { |
henriquer | 3:2d8f54d22dbd | 61 | deslc = var.read()*360; |
henriquer | 3:2d8f54d22dbd | 62 | s =20 * sin((long double) deslc / 10); // Sinal com amplitude 20 |
henriquer | 3:2d8f54d22dbd | 63 | // Variável de precição amostrando o valor do pot. Valor 10 refere-se a expessura do sinal |
henriquer | 3:2d8f54d22dbd | 64 | |
henriquer | 3:2d8f54d22dbd | 65 | L=20 * cos((long double) deslc / 10); |
henriquer | 3:2d8f54d22dbd | 66 | tft.drawPixel(70 + (int)s,deslc,RED); // Função Pixel responsável por " escrever "o sinal com vários pontos no display |
henriquer | 3:2d8f54d22dbd | 67 | // s convertido para int ; valor 70 é a referência de início do sinal |
henriquer | 3:2d8f54d22dbd | 68 | |
henriquer | 3:2d8f54d22dbd | 69 | tft.drawPixel(70 + (int)L,deslc,BLUE); |
henriquer | 3:2d8f54d22dbd | 70 | } |
henriquer | 3:2d8f54d22dbd | 71 | |
henriquer | 3:2d8f54d22dbd | 72 | |
henriquer | 3:2d8f54d22dbd | 73 | } |
henriquer | 3:2d8f54d22dbd | 74 | |
henriquer | 3:2d8f54d22dbd | 75 | |
henriquer | 3:2d8f54d22dbd | 76 | } |
henriquer | 2:f603020cd6ec | 77 | |
henriquer | 2:f603020cd6ec | 78 | |
henriquer | 2:f603020cd6ec | 79 | int main() |
silviosz | 0:d4d4998d71d5 | 80 | { |
henriquer | 3:2d8f54d22dbd | 81 | |
silviosz | 0:d4d4998d71d5 | 82 | setup(); |
henriquer | 3:2d8f54d22dbd | 83 | signal(); |
henriquer | 3:2d8f54d22dbd | 84 | while(2) { |
henriquer | 3:2d8f54d22dbd | 85 | |
henriquer | 3:2d8f54d22dbd | 86 | |
henriquer | 3:2d8f54d22dbd | 87 | |
silviosz | 0:d4d4998d71d5 | 88 | } |
henriquer | 3:2d8f54d22dbd | 89 | |
silviosz | 0:d4d4998d71d5 | 90 | } |