Laço de repetição no display de 7 segmentos usando goto
Código feito em mikro PRO for
void main() {
trisb = 0;//definindo todos os pinos como saída
portb = 0; //desligando
inicio:
portb = 0b00111111;//forma binária, 'imprimndo o [0]'
delay_ms(500);
portb = 0b00000110;//'imprimndo o [1]'
delay_ms(500);
portb = 91; //forma decimal, 'imprimindo o [2]'
delay_ms(500);
portb = 79; // [3]
delay_ms(500);//0,5s de espera
portb = 0x66; //forma hexadecimal [4]
delay_ms(500);
portb = 0x6D; //forma hexadecimal [5]
delay_ms(500);
portb = 0x7D; // [6]
delay_ms(500);
portb = 0x7;// forma hexadecimal [7]
delay_ms(500);
portb = 0b01111111;//[8]
delay_ms(500);
portb = 0b01100111; //[9]
delay_ms(500);
goto inicio; //retorna para para o inicio
}
Pesquisar neste blog
24/02/2020
Desafio 1
Fazer o Led piscar conforme o gráfico
Resolução:
Código feito em CCS C Compiler
#include <16F877A.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=20000000)
void main(){
while(TRUE){
output_low(PIN_B2);
for(int i = 0; i< 50; i++){
for(int j = 0; j < 100; j++){
output_high(PIN_B2);
delay_us(i*(1000/50));
output_low(PIN_B2);
delay_us(1000-(1*(1000/50)));
}
}
}
}
18/02/2020
Pisca Leds 3 com PIC 16F877A
Objetivo: Piscar leds consequentemente usando for
Código feito em CCS C Compiler
#include <16F877a.h>
#use delay(crystal=20MHz)
void main(){
char pins[] = {PIN_B0,PIN_B1,PIN_B2,PIN_B3,PIN_B4};
while(TRUE){
for(int i=0; i<=4; i++){
output_high(pins[i]);
delay_ms(250);
output_low(250);
delay_ms(250);
}
for(i=5; i>=1; i--){
output_high(pins[i-1]);
delay_ms(250);
output_low(pins[i-1]);
delay_ms(250);
}
}
}
Código feito em CCS C Compiler
#include <16F877a.h>
#use delay(crystal=20MHz)
void main(){
char pins[] = {PIN_B0,PIN_B1,PIN_B2,PIN_B3,PIN_B4};
while(TRUE){
for(int i=0; i<=4; i++){
output_high(pins[i]);
delay_ms(250);
output_low(250);
delay_ms(250);
}
for(i=5; i>=1; i--){
output_high(pins[i-1]);
delay_ms(250);
output_low(pins[i-1]);
delay_ms(250);
}
}
}
Display 7 segmentos usando PIC 16F877A (1)
Código feito em mikro PRO for
void main() {
trisb = 0;//definindo todos os pinos como saída
portb = 0; //desligando
portb = 0b00111111;//forma binária, 'imprimndo o [0]'
delay_ms(500);
portb = 0b00000110;//'imprimndo o [1]'
delay_ms(500);
portb = 91; //forma decimal, 'imprimindo o [2]'
delay_ms(500);
portb = 79; // [3]
delay_ms(500);//0,5s de espera
portb = 0x66; //forma hexadecimal [4]
delay_ms(500);
portb = 0x6D; //forma hexadecimal [5]
delay_ms(500);
portb = 0x7D; // [6]
delay_ms(500);
portb = 0x7;// forma hexadecimal [7]
delay_ms(500);
portb = 0b01111111;//[8]
delay_ms(500);
portb = 0b01100111; //[9]
delay_ms(500);
}
PiscaLed 2 com PIC 16F877A
Objetivo: Ligar e desligar vários leds consequentemente
Código feito no software mikroC Pro for, versão 7.2
void main() {
trisb = 0;
/*portb.rb0 = 1;
portb.rb1 = 1;
portb.rb2 = 1;
portb.rb3 = 1;
portb.rb4 = 1;
portb.rb5 = 1;
portb.rb6 = 1;
portb.rb7 = 1;*/
//método2 para ligar todos leds
//portb = 0b11111111;//substitui o método acima, economizando linhas
//método3 para ligar todos leds
portb = 255;//forma em decimal
//portb = 231; //fazendo teste com com a porta 231
delay_ms(500);//desligando os leds começando por rb7
portb.RB7 = 0;
delay_ms(500);
portb.RB6 = 0;
delay_ms(500);
portb.rb5 = 0;
delay_ms(500);//espera 0,5s
portb.rb4 = 0;
delay_ms(500);
portb.RB3 = 0;
delay_ms(500);
portb.RB2 = 0;
delay_ms(500);
portb.rb1 = 0;
delay_ms(500);
portb.rb0 = 0;
delay_ms(500);
}
Simulador usando Proteus 8.8 |
Código feito no software mikroC Pro for, versão 7.2
void main() {
trisb = 0;
/*portb.rb0 = 1;
portb.rb1 = 1;
portb.rb2 = 1;
portb.rb3 = 1;
portb.rb4 = 1;
portb.rb5 = 1;
portb.rb6 = 1;
portb.rb7 = 1;*/
//método2 para ligar todos leds
//portb = 0b11111111;//substitui o método acima, economizando linhas
//método3 para ligar todos leds
portb = 255;//forma em decimal
//portb = 231; //fazendo teste com com a porta 231
delay_ms(500);//desligando os leds começando por rb7
portb.RB7 = 0;
delay_ms(500);
portb.RB6 = 0;
delay_ms(500);
portb.rb5 = 0;
delay_ms(500);//espera 0,5s
portb.rb4 = 0;
delay_ms(500);
portb.RB3 = 0;
delay_ms(500);
portb.RB2 = 0;
delay_ms(500);
portb.rb1 = 0;
delay_ms(500);
portb.rb0 = 0;
delay_ms(500);
}
17/02/2020
Pisca Led1 com PIC 16F877A
Software Proteus 8.8 |
Código feito em CCS C Compiler
#include <16F877A.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#use delay(clock=20000000)
void main(){
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
// TODO: USER CODE!!
while(true){
output_high(PIN_B2);
delay_ms(1000);
output_low(PIN_B2);
delay_ms(1000);
}
}
30/01/2020
Programa 18
Número aleatório no Arduíno com display 7 segmentos
#define pinA 10
#define pinB 9
#define pinC 6
#define pinD 7
#define pinE 8
#define pinF 11
#define pinG 12
#define pinPD 5
#define pinBotao 2
int numero = 10;
boolean botaoAtu = false;
boolean botaoAnt = false;
void setup() {
// put your setup code here, to run once:
pinMode(pinBotao, INPUT);
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinPD, OUTPUT);
randomSeed( analogRead(A0) );
}
void loop() {
// put your main code here, to run repeatedly:
botaoAtu = digitalRead(pinBotao);
if (botaoAtu && !botaoAnt) {
numero = random(10);
}
botaoAnt = botaoAtu;
switch (numero) {
case 0:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, LOW);
break;
case 1:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, LOW);
break;
case 2:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 3:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 4:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 5:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 6:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 7:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, LOW);
break;
case 8:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 9:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
default:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, HIGH);
break;
}
delay(10);
}
Créditos para: https://cursodearduino.net/
Emulador feito no tinkercad.com |
#define pinA 10
#define pinB 9
#define pinC 6
#define pinD 7
#define pinE 8
#define pinF 11
#define pinG 12
#define pinPD 5
#define pinBotao 2
int numero = 10;
boolean botaoAtu = false;
boolean botaoAnt = false;
void setup() {
// put your setup code here, to run once:
pinMode(pinBotao, INPUT);
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinPD, OUTPUT);
randomSeed( analogRead(A0) );
}
void loop() {
// put your main code here, to run repeatedly:
botaoAtu = digitalRead(pinBotao);
if (botaoAtu && !botaoAnt) {
numero = random(10);
}
botaoAnt = botaoAtu;
switch (numero) {
case 0:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, LOW);
break;
case 1:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, LOW);
break;
case 2:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, LOW);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 3:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 4:
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 5:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 6:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 7:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, LOW);
break;
case 8:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, HIGH);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
case 9:
digitalWrite(pinA, HIGH);
digitalWrite(pinB, HIGH);
digitalWrite(pinC, HIGH);
digitalWrite(pinD, HIGH);
digitalWrite(pinE, LOW);
digitalWrite(pinF, HIGH);
digitalWrite(pinG, HIGH);
digitalWrite(pinPD, LOW);
break;
default:
digitalWrite(pinA, LOW);
digitalWrite(pinB, LOW);
digitalWrite(pinC, LOW);
digitalWrite(pinD, LOW);
digitalWrite(pinE, LOW);
digitalWrite(pinF, LOW);
digitalWrite(pinG, LOW);
digitalWrite(pinPD, HIGH);
break;
}
delay(10);
}
Créditos para: https://cursodearduino.net/
22/01/2020
Programa 17
Função com Arduíno
#define pinLedVm 2
#define pinLedVd 3
#define pinBotao 4
boolean pisca = false;
boolean leBotao(int porta);
void piscaLED(int porta, int tempo);
void setup() {
pinMode(pinLedVd, OUTPUT);
pinMode(pinLedVm, OUTPUT);
pinMode(pinBotao, INPUT_PULLUP);
}
void loop() {
if (leBotao(pinBotao)) {
pisca = !pisca;
}
if (pisca) {
piscaLED(pinLedVm, 200);
piscaLED(pinLedVd, 500);
}
}
boolean leBotao(int porta) {
static boolean estadoAnterior[14] = {true,true,true,true,true,true,true,true,true,true,true,true,true,true};
boolean estadoBotao = digitalRead(porta);
boolean ligado = false;
if (!estadoBotao && estadoAnterior[porta]) {
ligado = true;
}
estadoAnterior[porta] = estadoBotao;
return ligado;
}
void piscaLED(int porta, int tempo) {
static unsigned long delay1[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
if ((millis() - delay1[porta]) < tempo) {
digitalWrite(porta, HIGH);
} else {
digitalWrite(porta, LOW);
}
if ((millis() - delay1[porta]) >= (tempo * 2) ) {
delay1[porta] = millis();
}
}
#define pinLedVm 2
#define pinLedVd 3
#define pinBotao 4
boolean pisca = false;
boolean leBotao(int porta);
void piscaLED(int porta, int tempo);
void setup() {
pinMode(pinLedVd, OUTPUT);
pinMode(pinLedVm, OUTPUT);
pinMode(pinBotao, INPUT_PULLUP);
}
void loop() {
if (leBotao(pinBotao)) {
pisca = !pisca;
}
if (pisca) {
piscaLED(pinLedVm, 200);
piscaLED(pinLedVd, 500);
}
}
boolean leBotao(int porta) {
static boolean estadoAnterior[14] = {true,true,true,true,true,true,true,true,true,true,true,true,true,true};
boolean estadoBotao = digitalRead(porta);
boolean ligado = false;
if (!estadoBotao && estadoAnterior[porta]) {
ligado = true;
}
estadoAnterior[porta] = estadoBotao;
return ligado;
}
void piscaLED(int porta, int tempo) {
static unsigned long delay1[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
if ((millis() - delay1[porta]) < tempo) {
digitalWrite(porta, HIGH);
} else {
digitalWrite(porta, LOW);
}
if ((millis() - delay1[porta]) >= (tempo * 2) ) {
delay1[porta] = millis();
}
}
14/01/2020
Programa 16
Delay e millis no Arduíno
#define pinLedVd 10
#define pinLedVm 8
#define pinBotao 2
boolean estadoBotao = true;
boolean estAntBotao = true;
boolean estadoPisca = false;
unsigned long delay1 = 0;
void setup() {
pinMode(pinLedVd, OUTPUT);
pinMode(pinLedVm, OUTPUT);
pinMode(pinBotao, INPUT_PULLUP);
digitalWrite( pinLedVd, HIGH);
}
void loop() {
estadoBotao = digitalRead(pinBotao);
if (!estadoBotao && estAntBotao) {
estadoPisca = !estadoPisca;
}
estAntBotao = estadoBotao;
if (estadoPisca) {
if ((millis() - delay1) >= 500) {
digitalWrite( pinLedVm, HIGH);
}
if ((millis() - delay1) < 500) {
digitalWrite( pinLedVm, LOW);
}
if ((millis() - delay1) >= 1000) {
delay1 = millis();
}
} else {
digitalWrite( pinLedVm, LOW);
}
delay(10);
}
#define pinLedVd 10
#define pinLedVm 8
#define pinBotao 2
boolean estadoBotao = true;
boolean estAntBotao = true;
boolean estadoPisca = false;
unsigned long delay1 = 0;
void setup() {
pinMode(pinLedVd, OUTPUT);
pinMode(pinLedVm, OUTPUT);
pinMode(pinBotao, INPUT_PULLUP);
digitalWrite( pinLedVd, HIGH);
}
void loop() {
estadoBotao = digitalRead(pinBotao);
if (!estadoBotao && estAntBotao) {
estadoPisca = !estadoPisca;
}
estAntBotao = estadoBotao;
if (estadoPisca) {
if ((millis() - delay1) >= 500) {
digitalWrite( pinLedVm, HIGH);
}
if ((millis() - delay1) < 500) {
digitalWrite( pinLedVm, LOW);
}
if ((millis() - delay1) >= 1000) {
delay1 = millis();
}
} else {
digitalWrite( pinLedVm, LOW);
}
delay(10);
}
Programa 15 -
Impressão e contador no Arduíno usando display LCD
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("DEUS E MAIOR ");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 500);
}
Palavras chave:
Printing and counter in Arduino using LCD display
Impresión y contador en Arduino usando pantalla LCD
Priontáil agus cuntar in Arduino ag baint úsáide as taispeáint LCD
Druk en toonbank in Arduino met LCD-skerm
Drukowanie i liczenie w Arduino za pomocą wyświetlacza LCD
Друк та лічильник в Ардуїно за допомогою РК-дисплея
Skriva ut och räknar i Arduino med LCD-skärm
הדפסה ודלפק בארדואינו באמצעות צג LCD
Nyithak lan kontra ing Arduino nggunakake tampilan LCD
Ispis i šalter u Arduinu pomoću LCD zaslona
Печат и брояч в Arduino с помощта на LCD дисплей
Simulação feita no Tinkercad |
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("DEUS E MAIOR ");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 500);
}
Palavras chave:
Printing and counter in Arduino using LCD display
Impresión y contador en Arduino usando pantalla LCD
Priontáil agus cuntar in Arduino ag baint úsáide as taispeáint LCD
Druk en toonbank in Arduino met LCD-skerm
Drukowanie i liczenie w Arduino za pomocą wyświetlacza LCD
Друк та лічильник в Ардуїно за допомогою РК-дисплея
Skriva ut och räknar i Arduino med LCD-skärm
הדפסה ודלפק בארדואינו באמצעות צג LCD
Nyithak lan kontra ing Arduino nggunakake tampilan LCD
Ispis i šalter u Arduinu pomoću LCD zaslona
Печат и брояч в Arduino с помощта на LCD дисплей
13/01/2020
Programa 14 - Letras na tabela ASC
Imprimir caracteres usando while
#define pinBotao 2
void setup() {
pinMode(pinBotao, INPUT_PULLUP);//PULLUP = evita a nececidade de 1 resistor
Serial.begin(9600);//comunicação serial
}
void loop() {
int n3 = 0;
//laço de números
for(int n1 = 0; n1 < 50; n1++){
Serial.print(char((n1 % 10)+48));
if(digitalRead(pinBotao) == LOW){//se a leitura for igual a desligado
delay(400);
break;
}
delay(50);
}
Serial.println();//pula uma linha
//LAÇO DAS LETRAS MAIÚSCULAS
letrasMaiusculas://endereço
int n2 = 0;
while (n2 < 50){
//25 letras maíusculas na tabela ASC
Serial.print(char((n2 % 25)+ 65));
n2++;
if(digitalRead(pinBotao) == LOW){
delay(400);
continue;//vai enviar para o while novamente
}
delay(50);
}
Serial.println();
//laço das letras minúsculas
do{
n3 = random(25);//sorteando numero
Serial.print(char(n3 + 97));//letra de a - z
if(digitalRead(pinBotao) == LOW){
delay(400);
Serial.println();
n2 = 0;
goto letrasMaiusculas;//mudar para um endereço especificado
}
delay(50);
}while (n3 != 16);//enquanto não for a letra q minúscula na tabela ASC
Serial.println();
}
#define pinBotao 2
void setup() {
pinMode(pinBotao, INPUT_PULLUP);//PULLUP = evita a nececidade de 1 resistor
Serial.begin(9600);//comunicação serial
}
void loop() {
int n3 = 0;
//laço de números
for(int n1 = 0; n1 < 50; n1++){
Serial.print(char((n1 % 10)+48));
if(digitalRead(pinBotao) == LOW){//se a leitura for igual a desligado
delay(400);
break;
}
delay(50);
}
Serial.println();//pula uma linha
//LAÇO DAS LETRAS MAIÚSCULAS
letrasMaiusculas://endereço
int n2 = 0;
while (n2 < 50){
//25 letras maíusculas na tabela ASC
Serial.print(char((n2 % 25)+ 65));
n2++;
if(digitalRead(pinBotao) == LOW){
delay(400);
continue;//vai enviar para o while novamente
}
delay(50);
}
Serial.println();
//laço das letras minúsculas
do{
n3 = random(25);//sorteando numero
Serial.print(char(n3 + 97));//letra de a - z
if(digitalRead(pinBotao) == LOW){
delay(400);
Serial.println();
n2 = 0;
goto letrasMaiusculas;//mudar para um endereço especificado
}
delay(50);
}while (n3 != 16);//enquanto não for a letra q minúscula na tabela ASC
Serial.println();
}
Saída gerada |
12/01/2020
Programa 13 - Binario, hexadecimal e octal
Binario, hexadecimal e octal no Arduino
int valor1, valor2, valor3, valor4;
void setup() {
valor1 = 25;
valor2 = 13;
Serial.begin(9600);
Serial.print("Valor1: = ");
Serial.print(valor1);
Serial.print("\nValor2: = ");
Serial.print(valor2);
Serial.print("\n\nValor1 em binário = ");//exibe na tela
Serial.print(valor1, BIN);// imprime o valor1 em binário
Serial.print("\nValor2 em decimal: = ");
Serial.print(valor2, DEC);
Serial.print("\nValor1 em hexadecimal = ");
Serial.print(valor1, HEX);
Serial.print("\nValor2 em octal = ");
Serial.print(valor2, OCT);
}
void loop() {
}
int valor1, valor2, valor3, valor4;
void setup() {
valor1 = 25;
valor2 = 13;
Serial.begin(9600);
Serial.print("Valor1: = ");
Serial.print(valor1);
Serial.print("\nValor2: = ");
Serial.print(valor2);
Serial.print("\n\nValor1 em binário = ");//exibe na tela
Serial.print(valor1, BIN);// imprime o valor1 em binário
Serial.print("\nValor2 em decimal: = ");
Serial.print(valor2, DEC);
Serial.print("\nValor1 em hexadecimal = ");
Serial.print(valor1, HEX);
Serial.print("\nValor2 em octal = ");
Serial.print(valor2, OCT);
}
void loop() {
}
Saída gerada |
10/01/2020
Programa 12 - Soma e subtração no Arduino
Soma e subtração no Arduino
int valor1, valor2;
float soma, sub, divi, mult, resto, resFinal;
void setup() {
valor1 = 25;
valor2 = 13;
soma = valor1 + valor2;
sub = valor1 - valor2;
divi = valor1 / valor2;
mult = valor1 * valor2;
resto = int (valor1) % int(valor2); // convertendo para inteiro
resFinal = (soma * sub - divi + mult )/resto;
Serial.begin(9600);
Serial.print("Valor1: = ");//exibe na tela
Serial.print(valor1);// imprime o valor1
Serial.print("\nValor2: = ");
Serial.print(valor2);
Serial.print("\n\nSoma: = ");
Serial.print(soma);
Serial.print("\nSubtração: = ");
Serial.print(sub);
Serial.print("\nDivisaoão: = ");
Serial.print(divi);
Serial.print("\nMultiplicação: = ");
Serial.print(mult);
Serial.print("\nResto: = ");
Serial.print(resto);
Serial.print("\nResultado final: = ");
Serial.print(resFinal);
}
void loop() {
}
int valor1, valor2;
float soma, sub, divi, mult, resto, resFinal;
void setup() {
valor1 = 25;
valor2 = 13;
soma = valor1 + valor2;
sub = valor1 - valor2;
divi = valor1 / valor2;
mult = valor1 * valor2;
resto = int (valor1) % int(valor2); // convertendo para inteiro
resFinal = (soma * sub - divi + mult )/resto;
Serial.begin(9600);
Serial.print("Valor1: = ");//exibe na tela
Serial.print(valor1);// imprime o valor1
Serial.print("\nValor2: = ");
Serial.print(valor2);
Serial.print("\n\nSoma: = ");
Serial.print(soma);
Serial.print("\nSubtração: = ");
Serial.print(sub);
Serial.print("\nDivisaoão: = ");
Serial.print(divi);
Serial.print("\nMultiplicação: = ");
Serial.print(mult);
Serial.print("\nResto: = ");
Serial.print(resto);
Serial.print("\nResultado final: = ");
Serial.print(resFinal);
}
void loop() {
}
Saída gerada |
09/01/2020
Programa 11
Contador usando Arduíno
//Portas analógicas
int pinos[9] = {12,11,10,9,8,7,6,5,4};
//int pinLed;
float minimo = 65;
float maximo = 1020;
float valorLDR;//guardar o valor nessa variavel
float luminosidade;
void setup() {
// iniciando o pinLed
for(int pinLed = 0; pinLed <= 8; pinLed++){
pinMode(pinos[pinLed], OUTPUT);//portas digitais de saidas que irao ligar e desligar
}
pinMode(A0, INPUT);//porta analogica
}
void loop() {
//
valorLDR = analogRead(A0);//ler e guardar o valor nessa variavel
luminosidade = ((valorLDR - minimo)/(maximo - minimo)) * 10;
luminosidade = (luminosidade - 10) * -1 ;
//acender a luminosidade de acordo com a faixa
for(int pinLed = 0; pinLed <= 8; pinLed++){
if(pinLed < luminosidade){
digitalWrite(pinos[pinLed], HIGH);//ligar o led
}else {
digitalWrite(pinos[pinLed], LOW);//deligar o led
}
}
}
//Portas analógicas
int pinos[9] = {12,11,10,9,8,7,6,5,4};
//int pinLed;
float minimo = 65;
float maximo = 1020;
float valorLDR;//guardar o valor nessa variavel
float luminosidade;
void setup() {
// iniciando o pinLed
for(int pinLed = 0; pinLed <= 8; pinLed++){
pinMode(pinos[pinLed], OUTPUT);//portas digitais de saidas que irao ligar e desligar
}
pinMode(A0, INPUT);//porta analogica
}
void loop() {
//
valorLDR = analogRead(A0);//ler e guardar o valor nessa variavel
luminosidade = ((valorLDR - minimo)/(maximo - minimo)) * 10;
luminosidade = (luminosidade - 10) * -1 ;
//acender a luminosidade de acordo com a faixa
for(int pinLed = 0; pinLed <= 8; pinLed++){
if(pinLed < luminosidade){
digitalWrite(pinos[pinLed], HIGH);//ligar o led
}else {
digitalWrite(pinos[pinLed], LOW);//deligar o led
}
}
}
Programa 10
Usando Array no Arduíno com sensor de luz
//Portas analógicas
int pinos[9] = {12,11,10,9,8,7,6,5,4};
//int pinLed;
float minimo = 65;
float maximo = 1020;
float valorLDR;//guardar o valor nessa variavel
float luminosidade;
void setup() {
// iniciando o pinLed
for(int pinLed = 0; pinLed <= 8; pinLed++){
pinMode(pinos[pinLed], OUTPUT);//portas digitais de saidas que irao ligar e desligar
}
pinMode(A0, INPUT);//porta analogica
}
void loop() {
//
valorLDR = analogRead(A0);//ler e guardar o valor nessa variavel
luminosidade = ((valorLDR - minimo)/(maximo - minimo)) * 10;
luminosidade = (luminosidade - 10) * -1 ;
//acender a luminosidade de acordo com a faixa
for(int pinLed = 0; pinLed <= 8; pinLed++){
if(pinLed < luminosidade){
digitalWrite(pinos[pinLed], HIGH);//ligar o led
}else {
digitalWrite(pinos[pinLed], LOW);//deligar o led
}
}
}
//Portas analógicas
int pinos[9] = {12,11,10,9,8,7,6,5,4};
//int pinLed;
float minimo = 65;
float maximo = 1020;
float valorLDR;//guardar o valor nessa variavel
float luminosidade;
void setup() {
// iniciando o pinLed
for(int pinLed = 0; pinLed <= 8; pinLed++){
pinMode(pinos[pinLed], OUTPUT);//portas digitais de saidas que irao ligar e desligar
}
pinMode(A0, INPUT);//porta analogica
}
void loop() {
//
valorLDR = analogRead(A0);//ler e guardar o valor nessa variavel
luminosidade = ((valorLDR - minimo)/(maximo - minimo)) * 10;
luminosidade = (luminosidade - 10) * -1 ;
//acender a luminosidade de acordo com a faixa
for(int pinLed = 0; pinLed <= 8; pinLed++){
if(pinLed < luminosidade){
digitalWrite(pinos[pinLed], HIGH);//ligar o led
}else {
digitalWrite(pinos[pinLed], LOW);//deligar o led
}
}
}
Programa 9
Ligar leds no Arduíno usando Array
int pinLed[9] = {12,11,10,9,8,7,6,5,4};
int numeroLed;
char digitado;
void setup() {
int x;
for(int x = 0; x <= 0; x++){
pinMode(pinLed[x], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
digitado = ' ';
numeroLed = 0;
while (digitado != 'P'){//enquanto for menor que 8 acrescenta 1
digitalWrite(pinLed[numeroLed], LOW);//apagou
numeroLed += 1;
if(numeroLed > 8){//se for maior
numeroLed = 0;//reseta
}
digitalWrite(pinLed[numeroLed], HIGH);
//verificar se tem alguma informação na porta serial
if(Serial.available()){//se existir alguma informação na porta serial, se foi enviado informação para o arduino
digitado = Serial.read();//lendo informação
}
delay(50);
}
delay(5000);
}
int pinLed[9] = {12,11,10,9,8,7,6,5,4};
int numeroLed;
char digitado;
void setup() {
int x;
for(int x = 0; x <= 0; x++){
pinMode(pinLed[x], OUTPUT);
}
Serial.begin(9600);
}
void loop() {
digitado = ' ';
numeroLed = 0;
while (digitado != 'P'){//enquanto for menor que 8 acrescenta 1
digitalWrite(pinLed[numeroLed], LOW);//apagou
numeroLed += 1;
if(numeroLed > 8){//se for maior
numeroLed = 0;//reseta
}
digitalWrite(pinLed[numeroLed], HIGH);
//verificar se tem alguma informação na porta serial
if(Serial.available()){//se existir alguma informação na porta serial, se foi enviado informação para o arduino
digitado = Serial.read();//lendo informação
}
delay(50);
}
delay(5000);
}
08/01/2020
Programa 8
Ascender leds com Arduino usando Array
int pinLed[9] = {12,11,10,9,8,7,6,5,4};
int numeroLed;
void setup() {
int x;
for(int x = 0; x <= 0; x++){
pinMode(pinLed[x], OUTPUT);
}
}
void loop() {
numeroLed = 0;
while (numeroLed <= 8){
digitalWrite(pinLed[numeroLed], HIGH);
delay(50);
numeroLed += 1;
}
numeroLed = 8;
while(numeroLed >= 0){
digitalWrite(pinLed[numeroLed], LOW);
delay(500);
numeroLed -= 1;
}
}
Créditos para https://cursodearduino.net/
int pinLed[9] = {12,11,10,9,8,7,6,5,4};
int numeroLed;
void setup() {
int x;
for(int x = 0; x <= 0; x++){
pinMode(pinLed[x], OUTPUT);
}
}
void loop() {
numeroLed = 0;
while (numeroLed <= 8){
digitalWrite(pinLed[numeroLed], HIGH);
delay(50);
numeroLed += 1;
}
numeroLed = 8;
while(numeroLed >= 0){
digitalWrite(pinLed[numeroLed], LOW);
delay(500);
numeroLed -= 1;
}
}
Créditos para https://cursodearduino.net/
07/01/2020
Programa 7
Soma no Arduíno
int x, y, z, soma;
void setup() {
// put your setup code here, to run once:
//arduino começa a se comunicar com o computador
Serial.begin(9600);//9600 velocidade
x = 10;
y = 20;
z = 50;
soma = x + y + z;
Serial.print("Valor de x = ");
Serial.print(x);
Serial.print("\nValor de y = ");
Serial.print(y);
Serial.print("\nValor de z = ");
Serial.print(z);
Serial.print("\nSoma = ");
Serial.print(soma);
}
void loop() {
// put your main code here, to run repeatedly:
}
Créditos para https://cursodearduino.net/
int x, y, z, soma;
void setup() {
// put your setup code here, to run once:
//arduino começa a se comunicar com o computador
Serial.begin(9600);//9600 velocidade
x = 10;
y = 20;
z = 50;
soma = x + y + z;
Serial.print("Valor de x = ");
Serial.print(x);
Serial.print("\nValor de y = ");
Serial.print(y);
Serial.print("\nValor de z = ");
Serial.print(z);
Serial.print("\nSoma = ");
Serial.print(soma);
}
void loop() {
// put your main code here, to run repeatedly:
}
Créditos para https://cursodearduino.net/
Programa 6
Acender sequencial de Leds em Arduino
int pinLed[9] = {12,11,10,9,8,7,6,5,4};//portas
int numeroLed;
void setup() {
int i;
//repetir 0 vezes
for(i =0; i <= 8; i++){
pinMode(pinLed[i], OUTPUT);//repete várias vezes
}
}
void loop() {
//ligar os leds ascendente
for(numeroLed = 0; numeroLed <=8; numeroLed++){
digitalWrite(pinLed[numeroLed], HIGH);
delay(200);
}
//desliga decrescente
for(numeroLed = 8; numeroLed>= 0; numeroLed--){
digitalWrite(pinLed[numeroLed], LOW);//desliga
delay(800);
}
}
Créditos para https://cursodearduino.net/
int pinLed[9] = {12,11,10,9,8,7,6,5,4};//portas
int numeroLed;
void setup() {
int i;
//repetir 0 vezes
for(i =0; i <= 8; i++){
pinMode(pinLed[i], OUTPUT);//repete várias vezes
}
}
void loop() {
//ligar os leds ascendente
for(numeroLed = 0; numeroLed <=8; numeroLed++){
digitalWrite(pinLed[numeroLed], HIGH);
delay(200);
}
//desliga decrescente
for(numeroLed = 8; numeroLed>= 0; numeroLed--){
digitalWrite(pinLed[numeroLed], LOW);//desliga
delay(800);
}
}
Créditos para https://cursodearduino.net/
Programa 5
Acender Led no Arduino com botão de pressão
int pinVermelho = 10;
int pinAmarelo = 9;
int pinVerde = 8;
int pinBotao = 7;
int pinPedestreVermelho = 3;
int pinPedestreVerde = 2;
int faseSemaforo;
int estadoBotao;
int estadoAnteriorBotao;
int tempoPisca;
int estadoPisca;
void setup() {
// put your setup code here, to run once:
pinMode(pinVerde, OUTPUT);
pinMode(pinAmarelo, OUTPUT);
pinMode(pinVermelho, OUTPUT);
pinMode(pinBotao, INPUT);
pinMode(pinPedestreVerde, OUTPUT);
pinMode(pinPedestreVermelho, OUTPUT);
faseSemaforo = 1;
estadoAnteriorBotao = digitalRead(pinBotao);
tempoPisca = 0;
estadoPisca = HIGH;
}
void loop() {
// put your main code here, to run repeatedly:
estadoBotao = digitalRead(pinBotao);
if ((estadoBotao == LOW) && (estadoAnteriorBotao == HIGH)) {
if (faseSemaforo < 4) {
faseSemaforo = faseSemaforo + 1;
} else {
faseSemaforo = 1;
}
}
estadoAnteriorBotao = estadoBotao;
if (faseSemaforo == 1) { //SEMAFORO ABERTO (VERDE)
digitalWrite(pinVerde, HIGH);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, LOW);
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, HIGH);
}
if (faseSemaforo == 2) { //SEMAFORO AMARELO
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, HIGH);
digitalWrite(pinVermelho, LOW);
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, HIGH);
}
if (faseSemaforo == 3) { //SEMAFORO FECHADO (VERMELHO)
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, HIGH);
digitalWrite(pinPedestreVerde, HIGH);
digitalWrite(pinPedestreVermelho, LOW);
}
if (faseSemaforo == 4) { //SEMAFORO PEDESTRE PISCANDO
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, HIGH);
tempoPisca = tempoPisca + 1;
if (tempoPisca == 400) {
estadoPisca = !estadoPisca;
tempoPisca = 0;
}
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, estadoPisca);
}
delay(100);
}
Créditos para https://cursodearduino.net/
int pinVermelho = 10;
int pinAmarelo = 9;
int pinVerde = 8;
int pinBotao = 7;
int pinPedestreVermelho = 3;
int pinPedestreVerde = 2;
int faseSemaforo;
int estadoBotao;
int estadoAnteriorBotao;
int tempoPisca;
int estadoPisca;
void setup() {
// put your setup code here, to run once:
pinMode(pinVerde, OUTPUT);
pinMode(pinAmarelo, OUTPUT);
pinMode(pinVermelho, OUTPUT);
pinMode(pinBotao, INPUT);
pinMode(pinPedestreVerde, OUTPUT);
pinMode(pinPedestreVermelho, OUTPUT);
faseSemaforo = 1;
estadoAnteriorBotao = digitalRead(pinBotao);
tempoPisca = 0;
estadoPisca = HIGH;
}
void loop() {
// put your main code here, to run repeatedly:
estadoBotao = digitalRead(pinBotao);
if ((estadoBotao == LOW) && (estadoAnteriorBotao == HIGH)) {
if (faseSemaforo < 4) {
faseSemaforo = faseSemaforo + 1;
} else {
faseSemaforo = 1;
}
}
estadoAnteriorBotao = estadoBotao;
if (faseSemaforo == 1) { //SEMAFORO ABERTO (VERDE)
digitalWrite(pinVerde, HIGH);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, LOW);
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, HIGH);
}
if (faseSemaforo == 2) { //SEMAFORO AMARELO
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, HIGH);
digitalWrite(pinVermelho, LOW);
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, HIGH);
}
if (faseSemaforo == 3) { //SEMAFORO FECHADO (VERMELHO)
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, HIGH);
digitalWrite(pinPedestreVerde, HIGH);
digitalWrite(pinPedestreVermelho, LOW);
}
if (faseSemaforo == 4) { //SEMAFORO PEDESTRE PISCANDO
digitalWrite(pinVerde, LOW);
digitalWrite(pinAmarelo, LOW);
digitalWrite(pinVermelho, HIGH);
tempoPisca = tempoPisca + 1;
if (tempoPisca == 400) {
estadoPisca = !estadoPisca;
tempoPisca = 0;
}
digitalWrite(pinPedestreVerde, LOW);
digitalWrite(pinPedestreVermelho, estadoPisca);
}
delay(100);
}
Créditos para https://cursodearduino.net/
Programa 4
Ascender Led no Arduino com botão de pressão
void setup() {
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(7, INPUT);
}
void loop() {
int estadoBotao;
estadoBotao = digitalRead(7);//ao apertar o botão irá controlar os estados do led
digitalWrite(10, estadoBotao);
digitalWrite(9, estadoBotao);
}
Créditos para https://cursodearduino.net/
void setup() {
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(7, INPUT);
}
void loop() {
int estadoBotao;
estadoBotao = digitalRead(7);//ao apertar o botão irá controlar os estados do led
digitalWrite(10, estadoBotao);
digitalWrite(9, estadoBotao);
}
Créditos para https://cursodearduino.net/
Programa 3
Acender Led em Arduino com intervalo de tempo
void setup() {
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
int intervaloPisca;
intervaloPisca = 700;
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(intervaloPisca);//500 milesegundos
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(intervaloPisca);
}
Créditos para https://cursodearduino.net/
void setup() {
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
int intervaloPisca;
intervaloPisca = 700;
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(intervaloPisca);//500 milesegundos
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(intervaloPisca);
}
Créditos para https://cursodearduino.net/
Programa 2
Acender Led com intervalo de tempo em Arduino
void setup() {
// put your setup code here, to run once:
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int intervaloPisca;
intervaloPisca = 700;
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(intervaloPisca);//500 milesegundos
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(intervaloPisca);
}
Créditos para https://cursodearduino.net/
void setup() {
// put your setup code here, to run once:
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
int intervaloPisca;
intervaloPisca = 700;
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(intervaloPisca);//500 milesegundos
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(intervaloPisca);
}
Créditos para https://cursodearduino.net/
02/01/2020
Programa 1 - Ligar led
Acender Led no arduino
void setup() {
// put your setup code here, to run once:
pinMode(10, OUTPUT);//ligar
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(10, HIGH);//liga
delay(1000);//a cada 1 seg
digitalWrite(10, LOW);//desliga
delay(1000);
}
Créditos para https://cursodearduino.net/
void setup() {
// put your setup code here, to run once:
pinMode(10, OUTPUT);//ligar
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(10, HIGH);//liga
delay(1000);//a cada 1 seg
digitalWrite(10, LOW);//desliga
delay(1000);
}
Créditos para https://cursodearduino.net/
31/12/2019
22/12/2019
SAP_Ev2
Simulação do modelo de um SAP1 no Logisim
Autor: Professor Giuliano - Microprocessadores - IFMT - Engenharia da Computação 2019/2
Clique aqui para fazer o download do arquivo feito no Logisim versão 2.7
Autor: Professor Giuliano - Microprocessadores - IFMT - Engenharia da Computação 2019/2
SAP1 |
Clique aqui para fazer o download do arquivo feito no Logisim versão 2.7
20/12/2019
HashSet em java
package conceito;
import java.util.HashSet;
import java.util.Set;
public class Main1 {
public static void main(String[] args) {
// TODO code application logic here
Set<String> lista = new HashSet<String>();
lista.add("a");
lista.add("a");//só vai adicionar elementos não repetidos
lista.add("b");
lista.add("c");
lista.add("d");
lista.add("d");só vai adicionar elementos não repetidos
for(String s : lista){
System.out.println(lista);
}
}
}
import java.util.HashSet;
import java.util.Set;
public class Main1 {
public static void main(String[] args) {
// TODO code application logic here
Set<String> lista = new HashSet<String>();
lista.add("a");
lista.add("a");//só vai adicionar elementos não repetidos
lista.add("b");
lista.add("c");
lista.add("d");
lista.add("d");só vai adicionar elementos não repetidos
for(String s : lista){
System.out.println(lista);
}
}
}
Saída gerada |
18/12/2019
13/12/2019
PostegreSQL / PGAdmin no Java
O objetivo desta atividade é a modelagem do banco de dados e o desenvolvimento de um
sistema para controle e gerenciamento de torneios de tênis de mesa.
Um torneio dever ter um nome, uma data de início/fim e o endereço onde será realizado,
além de dados de contato do administrador do torneio (e-mail e telefone).
Um torneio é composto por diversos Eventos, que por sua vez podem filtrar os participantes
com base em diversos critérios:
Resolução:
Clique aqui para fazer o download do arquivo feito em Java e no PostegreSQL
- a. individual ou duplas;
- b. sexo: masculino, feminino ou sem restrição de sexo;
- c. por idade: Rating (baseado na data de nascimento do jogador) define um intervalo de idade permitido neste evento;
- d. pelo nível de jogo: Ranking (pontuação acumulada do jogador que define a qualidade do seu jogo) onde será definido um intervalo pelo qual o participante poderá disputar. Esses critérios podem ser cumulativos ou não, ou seja, pode haver eventos individuais com restrição de ranking mas sem restrição de sexo e rating, da mesma forma que pode ter evento de duplas com restrição de sexo e rating mas sem restrição de ranking. No Evento deve ser possível ainda definir o modelo de disputa que poderá variar entre: disputa em grupos GR, eliminação simples ES ou uma combinação entre grupos e eliminação simples. Deve ser permitida a definição do tamanho dos grupos e a formatação das chaves de eliminação quando, houverem não houverem quantidade suficiente de participantes para a formatação dos grupos de forma homogênea (grupos de 3, 4 ou 5 jogadores) ou para a definição das chaves de mata mata (ES) quando a quantidade de jogadores não for múltiplo de 2. Deve ainda ser permitido ao sistema realizar a impressão dos grupos e chaves de eliminação simples em formato impresso e digital. Por fim deve ser possível fazer o controle financeiro das inscrições dos jogadores nos Eventos dos Torneios. As informações acima descritas servem apenas para dar um norte inicial aos trabalhos, segue abaixo mais links de informações para melhor entendimento do objeto a ser analisado, que pode se deve ser ampliado, conforme maior maturidade no ambiente de negócio do cliente.
Resolução:
Informações da caixa de diálogo |
Informações incluídas |
Simulando jogo |
Dados incluídos no Banco de Dados |
Clique aqui para fazer o download do arquivo feito em Java e no PostegreSQL
Pilha em Java (Balanceamento)
/*ESCREVA UM PROGRAMA PARA VERIFICAR SE UMA EXPRESSAO MATEMATICA
TEM OS PARENTESES AGRUPADOS DE FORMA CORRETA ISTO É
1 - SE O NUMERO DE PARENTESES A ESQUERDA E A DIREITA SAO IGUAIS E
2 - SE TODO PARENTESE ABERTO É SEGUIDO POSTERIORMENTE POR UM FECHAMENTO
DE PARENTESE
*/
package hierarquiaMatematica;
import java.util.Stack;
/** EX: 06
* A + B [D + C)
* @author HENRIQUE
*/
public class ExpressaoMat {
final static String ABRE = "([{";
final static String FECHA = ")]}";
public static boolean verificaSimbolos(String expressao){
boolean balanceado = true;
Stack<Character> pilha = new Stack<Character>();
int index = 0;
char simbolo, topo;
while(index < expressao.length()){
simbolo = expressao.charAt(index);
if(ABRE.indexOf(simbolo)> -1){
pilha.push(simbolo);
}else if(FECHA.indexOf(simbolo)> -1){
if(pilha.isEmpty()){
return false;
}else{
topo = pilha.pop();
if(ABRE.indexOf(topo) != FECHA.indexOf(simbolo)){
return false;
}
}
}index++;
}
return true;
}
public static void main(String[] args) {
imprimeResultado("A + B");
imprimeResultado("A + B + (C - D)");
imprimeResultado("{[()]{[](){()}");
imprimeResultado("{[(]}[]()[()}");//desbalanceado
imprimeResultado("A + B + C - D");//OK
}
public static void imprimeResultado(String expressao){
System.out.println(expressao+" está balanceado ? "+verificaSimbolos(expressao));
}
}
12/12/2019
Analisador léxico e sintático em java
Clique aqui para fazer o download do arquivo feito em Java
Autor: Mateus Marques - IFMT - Engenharia da Computação - 2018/2
Clique aqui para fazer o download do arquivo feito em Java
Autor: Luis Alexandre - IFMT - Engenharia da Computação - 2018/2
Clique aqui para fazer o download do arquivo feito em Java
Autor: Tales - IFMT - Engenharia da Computação - 2019/2
Clique aqui para fazer o download do arquivo feito em Pyton
Autor: Adriano - IFMT - Engenharia da Computação - 2019/2
Clique aqui para fazer o download do arquivo feito em Pyton
Autor: Lucas - IFMT - Engenharia da Computação - 2019/2
Autor: Mateus Marques - IFMT - Engenharia da Computação - 2018/2
Clique aqui para fazer o download do arquivo feito em Java
Autor: Luis Alexandre - IFMT - Engenharia da Computação - 2018/2
Clique aqui para fazer o download do arquivo feito em Java
Autor: Tales - IFMT - Engenharia da Computação - 2019/2
Clique aqui para fazer o download do arquivo feito em Pyton
Autor: Adriano - IFMT - Engenharia da Computação - 2019/2
Clique aqui para fazer o download do arquivo feito em Pyton
Autor: Lucas - IFMT - Engenharia da Computação - 2019/2
20/11/2019
15/11/2019
Banco de Dados em Java 2 / Incluir
Inserir dados no PostreSQL usando Java
package apps;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author HENRIQUE
*/
public class FabricaConexao {
private static final String URL = "jdbc:postgresql://localhost:5432/produto";
private static final String DRIVE = "org.postgresql.Driver";
private static final String USER = "postgres";
private static final String PASS = "123";
public static Connection obterConexao(){
Connection conexao = null;
try{
Class.forName(DRIVE);
conexao = DriverManager.getConnection(URL, USER, PASS);
}catch (ClassNotFoundException cnf){
System.out.println("Driver não encontrado - "+cnf.getMessage());
}catch (SQLException sqle){
System.out.println("Erro ao conectar no banco - "+sqle.getMessage());
}
return conexao;
}
}
package apps;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author HENRIQUE
*/
public class FabricaConexao {
private static final String URL = "jdbc:postgresql://localhost:5432/produto";
private static final String DRIVE = "org.postgresql.Driver";
private static final String USER = "postgres";
private static final String PASS = "123";
public static Connection obterConexao(){
Connection conexao = null;
try{
Class.forName(DRIVE);
conexao = DriverManager.getConnection(URL, USER, PASS);
}catch (ClassNotFoundException cnf){
System.out.println("Driver não encontrado - "+cnf.getMessage());
}catch (SQLException sqle){
System.out.println("Erro ao conectar no banco - "+sqle.getMessage());
}
return conexao;
}
}
___________________ / / _____________________
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package apps;
import java.sql.Connection;
import java.sql.SQLException;
/**
*
* @author HENRIQUE
*/
public class TesteFabricaConexao {
public static void main(String[] args) {
Connection conexao;
try{
conexao = FabricaConexao.obterConexao();
System.out.println("Conexao estabelecida");
conexao.close();
System.out.println("Conexão encerrada");
}catch (SQLException sqle){
System.out.println("Conexão não estabelecida - "+sqle.getMessage());
}
}
}
__________________ / / _____________________
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package apps;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
*
* @author HENRIQUE
*/
public class Incluir2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Connection conexao = FabricaConexao.obterConexao();
PreparedStatement comando = null;
String nome = JOptionPane.showInputDialog("Forneça o nome do grupo de produto");
float promocao = Float.parseFloat(JOptionPane.showInputDialog("Forneça o percentual de promoção do grupo: "));
float margem = Float.parseFloat(JOptionPane.showInputDialog("Forneça o percentual da margem de lucro do produto: "));
String sql = "INSERT INTO grupoproduto (nome, promocao, margemlucro ) VALUES";
sql += "("+nome+", "+promocao+", "+margem+" )";
try {
comando = conexao.prepareStatement("INSERT INTO grupoproduto (nome, promocao, margemlucro ) VALUES (?, ?, ?)");
comando.setString(1, nome);
comando.setFloat(2, promocao);
comando.setFloat(3, margem);
comando.executeUpdate();
System.out.println("Inclusao realizada com sucesso");
}catch (SQLException ex){
System.out.println("Erro ao incluir grupo de produto"+ex.toString());
}finally {
try{
comando.close();
conexao.close();
}catch (SQLException ex){
System.out.println("Erro ao desconectar "+ex.toString());
}
}
}
}
__________________ / / ____________________
Executando o algoritmo |
SAP_1
Microprocessador de um SAP feito no Logisim
Clique aqui para fazer o download do arquivo feito no Logisim 2.7
Clique aqui para fazer o download do arquivo de instruções
Clique aqui para fazer o download do arquivo feito no Logisim 2.7
Clique aqui para fazer o download do arquivo de instruções
O barbeiro sonolento
- Descrição do problema
- A analogia de uma barbearia com um barbeiro.
- A barbearia possui
- Uma cadeira para corte de cabelo
- Uma sala de espera com um número determinado de cadeiras
- Quando o barbeiro finaliza o corte de cabelo de um cliente
- Ele libera o cliente e vai até a sala de espera para ver se há algum cliente esperando
- Se há algum cliente esperando, ele trás consigo um dos clientes corta o seu cabelo
- Se não há clientes esperando então ele volta para a cadeira de corte para dormir
- Quando um cliente chega à barbeariaO cliente olha o que o barbeiro está fazendo.
- Se o barbeiro estiver dormindo, ele o acorda e senta na cadeira.
- Se o barbeiro estiver trabalhando então o cliente vai para a sala de espera
- Se houver uma cadeira livre na sala de espera então ele senta e aguarda sua vez
- Se não houver cadeira livre na sala de espera então o cliente vai embora.
Alunos: Luís Fernando, Henrique Souza, Luana Novais e Eberty Miranda
Créditos para: Luís Fernando autor do algoritmo
Clique aqui para fazer o download do arquivo feito no Java
Assinar:
Postagens (Atom)