Detectei uma pequena gralha nos comentários do código. Logo nas primeiras linhas, referes-te sempre ao pin 13, em vez de 11, 12 e 13. Não é que seja muito importante, mas achei por bem avisar!
O tuturial "dia 2" já está feito, mais logo em principio experimento este, mas tou com uma dúvida. Só tenho cá resistencias de 390ohms, será que acende alguma coisa?
Outra duvida, depois de ter feito upload do "Blink", como é que faço com que o Arduino pare de piscar o led? Isto é, como faço OFF ou reset ao bixo?
hahaha... fazes bem, desde que chegue para ver o led :P
O "problema" está noutro lado.
Eu achei isto sobre a queda de tensão dos leds está certo no geral?
Côr Queda de Tensão Corrente Máxima
Vermelho 1.8 V 0.02 A
Verde 2.1 V 0.02 A
Amarelo 2.0 V 0.015 A
(...)
const int PINS= 6; //PINS do output, numero da constante +1
int k;
int ledPin[]={7,8,9,10,11,12,13};
int inPin=2;
void setup()
{
for(int i=0;i<=PINS;i++){
pinMode(ledPin[i],OUTPUT);
pinMode(inPin,INPUT);
}
}
void loop(){
if(digitalRead(inPin)==HIGH)
for(k=0;k<=PINS;k++){
digitalWrite(ledPin[k],HIGH);
digitalWrite(ledPin[PINS-k],HIGH);
delay(2000);
digitalWrite(ledPin[k],LOW);
digitalWrite(ledPin[PINS-k],LOW);
}
}
const int PINS= 6; //PINS do output, numero da constante +1
int k;
int ledPin[]={7,8,9,10,11,12,13};
int inPin=2;
void setup()
{
for(int i=0;i<=PINS;i++){
pinMode(ledPin,OUTPUT);
pinMode(inPin,INPUT);
}
}
Desculpa esta ultima pergunta mas também quero ser mais autónomo, onde é que aprendeste essa explicação do interruptor? que sem a resistência ele não sabe se é 0 ou 1.
A resistência de 10k ohm está no circuito porque quando ligo o interruptor a 1 ele leva 5 volt para o PIN input e como está ligado ao menos para não fazer curto circuito metesse uma resistência, isto é o que eu penso que para que serve a resistência neste circuito.Certo. (nota: escreve-se "mete-se")
Se quisesse colocar apenas 0(zero) no PIN input bastava ligar só à terra.Certo, além do que o _metRo já acrescentou, mas à excepção de
Estou certo no que disse (...)?
-Quando o botão está aberto a corrente vai fluir pela massa.Não flui corrente pela massa. Bom, na verdade até flui, mas é tão tão minúscula que toda a gente a ignora pois não tem valor para ter qualquer efeito visivel.
No entanto quando o botão está para baixo a corrente que vem da fonte (+5V) vai fluir para o pino pois a resistência do pino é menor que a resistência que colocas-te.A resistência do pino, configurado como entrada, é muitas vezes maior do que os 10K. Deve ser qualquer coisa como 100 MOhm (100000 KOhm).
Uma outra pergunta, porque uma resistência de 10kohm porque não outro valor?A escolha do valor é um equilibrio entre 2 coisas: consumo e sensibilidade ao ruído (eléctrico). Quanto maior for a resistência, mais sensível a entrada será ao ruído ambiente. Quanto menor for, mais irá consumir da fonte de alimentação quando carregas no botão.
Citação de: RaulSe quisesse colocar apenas 0(zero) no PIN input bastava ligar só à terra.Certo, além do que o _metRo já acrescentou, mas à excepção de
Estou certo no que disse (...)?Citação de: _metRo-Quando o botão está aberto a corrente vai fluir pela massa.Não flui corrente pela massa. Bom, na verdade até flui, mas é tão tão minúscula que toda a gente a ignora pois não tem valor para ter qualquer efeito visivel.CitarNo entanto quando o botão está para baixo a corrente que vem da fonte (+5V) vai fluir para o pino pois a resistência do pino é menor que a resistência que colocas-te.A resistência do pino, configurado como entrada, é muitas vezes maior do que os 10K. Deve ser qualquer coisa como 100 MOhm (100000 KOhm).
int led1 = 9; // LED connected to digital pin 9
int led2 = 10; // LED connected to digital pin 10
int led3 = 11; // LED connected to digital pin 11
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
digitalWrite(led1, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(led2, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(led3, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(led1, LOW); // set the LED off
delay(1000); // wait for a second
digitalWrite(led2, LOW); // set the LED off
delay(1000); // wait for a second
digitalWrite(led3, LOW); // set the LED off
delay(1000); // wait for a second
}
int led3 = 11;
int led2 = 10;
int led1 = 9;
int inPin = 1;
int val = 0;
void setup() {
pinMode(led3, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(inPin, INPUT);
}
void loop(){
val = digitalRead(inPin);
if (val == HIGH) {
} else {
digitalWrite(led3, HIGH);
delay(1000);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led3, LOW);
delay(1000);
digitalWrite(led2, LOW);
delay(1000);
digitalWrite(led1, LOW);
delay(1000);
}
}
Obrigado pela resposta senso, e sim o cátodo é comum são estes ( http://loja.lusorobotica.com/72-triple-output-led-rgb-diffused.htm (http://loja.lusorobotica.com/72-triple-output-led-rgb-diffused.htm) ) mas agora para experiência posso usar resistências de 220 Ohm, certo? Depois ver se faço isso que diz de mudar para muitas cores com o PWMhttp://lusorobotica.com/index.php?topic=2465.msg24557#msg24557 (http://lusorobotica.com/index.php?topic=2465.msg24557#msg24557)
Abraços e boa continuação ;)
int red = 9;
int green = 10;
int blue = 11;
void setup() {
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop()
{
digitalWrite(red, 255);
delay(1000);
digitalWrite(red, 0);
delay(1000);
digitalWrite(red, 255);
digitalWrite(green, 255);
delay(1000);
digitalWrite(red, 0);
digitalWrite(green, 0);
delay(1000);
digitalWrite(green, 200);
delay(1000);
digitalWrite(green, 0);
delay(1000);
digitalWrite(green, 255);
digitalWrite(blue, 255);
delay(1000);
digitalWrite(green, 0);
digitalWrite(blue, 0);
delay(1000);
digitalWrite(blue, 255);
delay(1000);
digitalWrite(blue, 0);
delay(1000);
digitalWrite(blue, 255);
digitalWrite(red, 255);
delay(1000);
digitalWrite(blue, 0);
digitalWrite(red, 0);
delay(1000);
}
int RedVal=1;
int BlueVal=1;
int GreenVal=1;
int redPin=9;
int bluePin=11;
int greenPin=10;
int i=1;
void setup() {}
void loop() {
analogWrite(redPin,255-RedVal);
analogWrite(bluePin,255-BlueVal);
analogWrite(greenPin,255-GreenVal);
RedVal =((i<255)*i)+((i>=255)*255)+((i>511)*(512-i))+((i>766)*(i-766))+((i>=1276)*(i-1276))+((i>1530)*(1530-i))+((i>1786)*(1786-i));
GreenVal =(i<256)*(1)+(i>255)*(i-255)+(i>510)*(510-i)+(i>1020)*(1020-i)+(i>1274)*(i-1274)+(i>1530)*(i-1531)+(i>1785)*(3571-(2*i));
BlueVal =(i<764)*(1)+(i>765)*(i-765)+(i>1020)*(1020-i)+(i>1786)*(1786-i);
if(i>2040){
i = 1;
}
i++;
delay(30);
}