AULA 9 - Microcontroladores - Eng: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
Linha 51: Linha 51:
==Firmware==
==Firmware==


#include <MaxMatrix.h>
#include <avr/pgmspace.h>
PROGMEM const unsigned char CH[] = {
  3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
  1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
  3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
  5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
  4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
  5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
  5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
  1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
  3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
  3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
  5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
  5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
  2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
  4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
  2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
  4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
  3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
  4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
  4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
  4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
  4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
  4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
  4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
  4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
  4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
  2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
  2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
  3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
  3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
  3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
  4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
  5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
  4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
  4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
  4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
  4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
  4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
  4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
  4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
  4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
  3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
  4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
  4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
  4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
  5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
  5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
  4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
  4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
  4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
  4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
  4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
  5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
  4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
  5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
  5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
  5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
  5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
  4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
  2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
  4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
  2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
  3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
  4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
  2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
  4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
  4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
  4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
  4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
  4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
  3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
  4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
  4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
  3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
  4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
  4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
  3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
  5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
  4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
  4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
  4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
  4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
  4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
  4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
  3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
  4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
  5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
  5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
  5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
  4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
  3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
  3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
  1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
  3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
  4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~
};
int DIN = 7;  // DIN pin of MAX7219 module
int CLK = 6;  // CLK pin of MAX7219 module
int CS = 5;    // CS pin of MAX7219 module
int maxInUse = 2;
 
MaxMatrix m(DIN, CS, CLK, maxInUse);
 
char text[]= "IFSC 2018 - 7o FASE - NELSON "; // texto deslizante
void setup() {
  m.init(); // module initialize
  m.setIntensity(15); // intensidade do brilho
}
void loop() {
  printStringWithShift(text, 80); // (texto, velocidade de deslizamento)
}
// Display=the extracted characters with scrolling
void printCharWithShift(char c, int shift_speed) {
 
  if (c < 32) return;
  c -= 32;
  byte buffer[100];
  memcpy_P(buffer, CH + 7 * c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
  for (int i = 0; i < buffer[0] + 1; i++)
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}
  // Extract the characters from the text string
void printStringWithShift(char* s, int shift_speed) {
  while (*s != 0) {
    printCharWithShift(*s, shift_speed);
    s++;
  }
}
-------------------
-------------------
=Trabalho Thiago=
=Trabalho Thiago=



Edição das 15h21min de 12 de setembro de 2018

<< Página do curso


Trabalho Ana Paula

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Davi

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Júlia

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Nelson

Protótipo

Hardware/Eletrônica

O aluno Nelson utilizou o módulo MAX7219 e biblioteca MaxMatriz.h

Vídeo do protótipo

Partes Mecânicas

Firmware

  1. include <MaxMatrix.h>
#include <avr/pgmspace.h>

PROGMEM const unsigned char CH[] = {

 3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space
 1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !
 3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "
 5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #
 4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $
 5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %
 5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &
 1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '
 3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (
 3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )
 5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *
 5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +
 2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,
 4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -
 2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .
 4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /
 4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0
 3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1
 4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2
 4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3
 4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4
 4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5
 4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6
 4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7
 4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8
 4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9
 2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :
 2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;
 3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <
 3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =
 3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >
 4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?
 5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @
 4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A
 4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B
 4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C
 4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D
 4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E
 4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F
 4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G
 4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H
 3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I
 4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J
 4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K
 4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L
 5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M
 5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N
 4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O
 4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P
 4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q
 4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R
 4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S
 5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T
 4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U
 5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V
 5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W
 5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X
 5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y
 4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z
 2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [
 4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash
 2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]
 3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat
 4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _
 2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `
 4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a
 4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b
 4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c
 4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d
 4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e
 3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f
 4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g
 4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h
 3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i
 4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j
 4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k
 3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l
 5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m
 4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n
 4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o
 4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p
 4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q
 4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r
 4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s
 3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t
 4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u
 5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v
 5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w
 5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x
 4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y
 3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z
 3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {
 1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |
 3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }
 4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~

};

int DIN = 7;   // DIN pin of MAX7219 module

int CLK = 6;   // CLK pin of MAX7219 module

int CS = 5;    // CS pin of MAX7219 module

int maxInUse = 2;

 

MaxMatrix m(DIN, CS, CLK, maxInUse);

 

char text[]= "IFSC 2018 - 7o FASE - NELSON "; // texto deslizante

void setup() {

 m.init(); // module initialize
 m.setIntensity(15); // intensidade do brilho

}

void loop() {

  printStringWithShift(text, 80); // (texto, velocidade de deslizamento)

}

// Display=the extracted characters with scrolling

void printCharWithShift(char c, int shift_speed) {

  

 if (c < 32) return;
 c -= 32;
 byte buffer[100];
 memcpy_P(buffer, CH + 7 * c, 7);
 m.writeSprite(32, 0, buffer);
 m.setColumn(32 + buffer[0], 0);
 for (int i = 0; i < buffer[0] + 1; i++)
 {
   delay(shift_speed);
   m.shiftLeft(false, false);

 }

}
 // Extract the characters from the text string

void printStringWithShift(char* s, int shift_speed) {

 while (*s != 0) {

   printCharWithShift(*s, shift_speed);

    s++;

  }

}



Trabalho Thiago

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Vitor

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


<< Página do curso

< Projeto 1 - Matriz de led com texto deslizante AULA 9 - Projeto 1 - Protótipos dos Alunos - Apresentação Projeto 2 - Alimentador automático de pets >