Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Aula _05
Aula de repaso
mensagens
void nomeDaMessagem( parmetros...)
poderia retornar um valor, no caso de void e que no retorna nada. O nome que vai poderia ser ser usado para la int chamar boolean
Nenhum o vrios parmetros que poderamos passar com informaes do que a gente quer fazer com a mensagem
mensagens
void setup(){} void loop(){} void pinMode( pino,tipo ); void delay( miliseconds ); void Serial.begin( 9600 ); void Serial.print( variavel ) void Serial.println( texto )
void setup(){}
Mensagem que devemos escrever e implementar (preencher) em todos nossos programas de Arduino. Nela designamos valores as variveis. Somente vai ser chamada uma vez quando o programa de arduino e carregado o ligamos a placa na corrente.
void loop(){}
Mensagem que devemos escrever e implementar (preencher) em todos nossos programas de Arduino. Nela escrevemos o cdigo que vai ser executado na placa. Vai ser chamada innitas vezes enquanto a placa estiver ligada.
n : numero da porta que usaremos. tipo : si usaremos como entrada o sada INPUT OUTPU
void delay(time)
Mensagem que usamos para fala ao Arduino que porta vamos a usar, e de que jeito.
void Serial.begin(vel);
Mensagem para iniciar a comunicao serial com computador via USB
n : velocidade de comunicao
9600
e o valor tpico
void Serial.println(valor)
imprime o valor no terminal de Arduino e faz salto de linha ao nal
void Serial.print(valor)
imprime o valor no terminal de Arduino e NAO faz salto de linha ao nal
Serial.print(a);
mensagens
void digitalWrite( pino , valor ); boolean digitalRead( pino ); void analogWrite( pino , valor ); int analogRead( pino );
void digitalWrite(n,tipo)
Escreve digital na porta indicada. ( manda uma corrente de 0V o 5V)
n : numero da porta que usaremos. tipo : Si colocamos 5 Voltios o 0 V LOW para 0V V=Voltios HIGH para 5V
boolean digitalRead(n)
Lee da porta digital um valor LOW o HIGH ( lemos correntes de 0V o 5V)
, 0 , 1
void analogWrite(n,valor)
Escreve PWM na porta indicada. ( manda uma onda de pulsos que simulan correntes entre 0 e 5v)
e 255
int analogRead(n)
Lee da porta digital um valor entero ( lemos corentes entre 0V e 5V)
mensagens
void millis(); void map(); void tone( pino,tipo );
float millis();
oat: tempo que paso desde que a placa foi ligada o reseteada, o desde que o programa foi carregado nela.
mensagem
long map(valor,fromLow, fromHigh, toLow, toHigh)
valor: o fromLow
que queremos mapear : valor minimo posivel do valor valor maximo posivel do valor
fromHigh: toLow
toHigh:
frequencia: frequencia do tono a tocar. durao: tempo que durara o tono. Si nao
colocar ele vai tocar innitamente.
materiais
! ! ! ! ! ! ! ! ! !
Arduino potenciometro de 10 Kohm piezoeletrico 4 resistores 220 Ohm 3 resistores 100 Ohm 1 led vermelho 1 led verde 1 led amarelo 3 botoes protoboard
esquematico
montagem
codigo
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13; , , , , OUTPUT OUTPUT OUTPUT OUTPUT ); ); ); ); void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04 } void loop(){ digitalWrite( digitalWrite( digitalWrite( digitalWrite( delay( 500 ); digitalWrite( digitalWrite( digitalWrite( digitalWrite( delay( 500 ); }
, , , ,
); ); ); );
esquematico
montagem
codigo 1
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13; int pinoBotao01 = 4; int pinoBotao02 = 3; int pinoBotao03 = 2; float ultimaoTempoDeMudancaDoLedBlanco = 0; boolean estadoDoLedBlanco = LOW; void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04 , , , , OUTPUT OUTPUT OUTPUT OUTPUT ); ); ); );
codigo 2
void loop(){ float tempoAtual = millis(); boolean estadoDoBotao01 = digitalRead( pinoBotao01 ); boolean estadoDoBotao02 = digitalRead( pinoBotao02 ); boolean estadoDoBotao03 = digitalRead( pinoBotao03 ); if( estadoDoBotao01 ){ digitalWrite( pinoLed01 , HIGH ); } else{ digitalWrite( pinoLed01 , LOW ); } if( estadoDoBotao02 ){ digitalWrite( pinoLed02 , HIGH ); } else{ digitalWrite( pinoLed02 , LOW ); } if( estadoDoBotao03 ){ digitalWrite( pinoLed03 , HIGH ); } else{ digitalWrite( pinoLed03 , LOW ); } if( tempoAtual - ultimaoTempoDeMudancaDoLedBlanco >= 1000 ){ estadoDoLedBlanco = !estadoDoLedBlanco; digitalWrite( pinoLed04 , estadoDoLedBlanco ); ultimaoTempoDeMudancaDoLedBlanco = tempoAtual; }
1.3: tres led controlados por tres botoes e um controlado por potenciometro
esquematico
montagem
codigo 1
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13;
int pinoBotao01 = 4; int pinoBotao02 = 3; int pinoBotao03 = 2; void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04 , , , , OUTPUT OUTPUT OUTPUT OUTPUT ); ); ); );
codigo 2
void loop(){ boolean estadoDoBotao01 = digitalRead( pinoBotao01 ); boolean estadoDoBotao02 = digitalRead( pinoBotao02 ); boolean estadoDoBotao03 = digitalRead( pinoBotao03 ); int valorDoPotenciometro = analogRead( A0 ); if( estadoDoBotao01 ){ digitalWrite( pinoLed01 , HIGH ); } else{ digitalWrite( pinoLed01 , LOW ); } if( estadoDoBotao02 ){ digitalWrite( pinoLed02 , HIGH ); } else{ digitalWrite( pinoLed02 , LOW ); } if( estadoDoBotao03 ){ digitalWrite( pinoLed03 , HIGH ); } else{ digitalWrite( pinoLed03 , LOW ); } int intensidadeDoLed = map( valorDoPotenciometro , 0 , 1024 , 0 , 255 ); analogWrite( pinoLed04 , intensidadeDoLed ); }
1.4: minipiano:
os tres botoes tocam tres diferentes notas e o potenciometro controla a frequencia que vemos si e alto o baixo no led brasnco
esquematico
montagem
codigo 1
int int int int pinoLed01 pinoLed02 pinoLed03 pinoLed04 = = = = 9; 11; 12; 13; int pinoBotao01 = 4; int pinoBotao02 = 3; int pinoBotao03 = 2; int frecNotaDo = 260; int frecNotaRe = 290; int frecNotaMi = 329; void setup(){ pinMode( pinoLed01 pinMode( pinoLed02 pinMode( pinoLed03 pinMode( pinoLed04
, , , ,
); ); ); );
codigo 2
void loop(){ boolean estadoDoBotao01 = digitalRead( pinoBotao01 ); boolean estadoDoBotao02 = digitalRead( pinoBotao02 ); boolean estadoDoBotao03 = digitalRead( pinoBotao03 ); int valorDoPotenciometro = analogRead( A0 ); if( estadoDoBotao01 ){ digitalWrite( pinoLed01 , HIGH ); tone( 7 , frecNotaDo , 10 ); } else{ digitalWrite( pinoLed01 , LOW ); } if( estadoDoBotao02 ){ digitalWrite( pinoLed02 , HIGH ); tone( 7 , frecNotaRe , 10 ); } else{ digitalWrite( pinoLed02 , LOW ); } if( estadoDoBotao03 ){ digitalWrite( pinoLed03 , HIGH ); tone( 7 , frecNotaMi , 10 ); } else{ digitalWrite( pinoLed03 , LOW ); } int intensidadeDoLed = map( valorDoPotenciometro , 0 , 1024 , 0 , 255 ); analogWrite( pinoLed04 , intensidadeDoLed ); }
materiais
! ! ! ! !
arduino botao momentaneo resitor de 10 KILO ohm placa prototipagem os de conexao
esquematico
montagem
codigo
const int buttonPin = 2; const int ledPin = 13; int buttonPushCounter = 0; int buttonState = 0; int lastButtonState = 0; void setup() { pinMode(buttonPin, INPUT); pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { buttonState = digitalRead(buttonPin); if (buttonState != lastButtonState) { if (buttonState == HIGH) { buttonPushCounter++; Serial.println("on"); Serial.print("number of button pushes: "); Serial.println(buttonPushCounter, DEC); } else { Serial.println("off"); } } lastButtonState = buttonState; if (buttonPushCounter % 4 == 0) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }