Go Down

Topic: Utilizzare un micropulsante come lettera alfabeto (Read 2 times) previous topic - next topic

niki77



for(i=13; i<=1; i++)
pinMode(i, INPUT);

.....



:smiley-eek-blue: :smiley-eek-blue: :smiley-eek-blue:

Ma l'hai scritto tu???
Se ci spieghi un attimo cosa vuoi fare una vista ce le diamo.
Ma così com'è non dovrebbe nemmeno uscire da setup!
Sicuro che hai caricato quello sulla scheda?

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

leo72

Scusami ma così non va bene.
Mi pare che tu non abbia molte basi di programmazione, non puoi pensare di scrivere un codice così di punto in bianco.
Prima comprati un libro sul C, imparati le basi, poi leggi la documentazione presente nel Reference del sito sui comandi e le funzioni specifiche di Arduino, poi inizia con le basi di elettronica, se ti mancano anche quelle (non lo so, non lo hai detto che grado di conoscenza hai).

Non prenderla male questa mia critica, voglio solo aiutarti a capire le cose ed a farti farei passi giusti

leo72


Bel tutorial,

Un bel led messo li a 'porcu' senza neanche uno straccio di resistenza !
Povero arduino.



Se vedi è infilato nel pin 13, e tutti pensano che lì la R ci sia già perché c'è un led integrato sul PCB ;)

niki77


Se vedi è infilato nel pin 13, e tutti pensano che lì la R ci sia già perché c'è un led integrato sul PCB ;)


Bhe pensano male, già dalla luminosità che emana si vede che poccia un bel pò.

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Cobra

Allora ragazzi,
mi dovete innanzitutto scusare, ripeto che sono nuovo sia nell'ambiente arduino e sia nel linguaggio C (per me ancor più complesso dell'Arduino stesso).
Mi scuso soprattutto perchè me ne sono accorto che non sono stato affatto chiaro, aumentando ancor di più la confusione con quella "specie" di programma che ho postato  :~ , frutto malsano dell'unione di un progetto per keypad + il progetto per accendere un led come era scritto in quel tutorial :( :( :( . Vorrei in pratica collegare i micropulsanti alle uscite digitali di arduino e l'uscita digitale n.13 il led. Devo far riconoscere ad Arduino che, una volta schiacciato il pulsante posto, per esempio, sul pin digitale n.2, venga inviata la lettera "A" e via discorrendo per gli altri pulsanti, cioè il micropulsante posto sul pin digitale n.3, una volta schiacciato, faccia riconoscere ad Arduino che è stata schiacciata la lettera "B", il micropulsante posto sul pin digitale n.4 la "C" e via discorrendo sino al micropulsante posto sul pin 10 che rappresenterebbe la lettera "J". Poi, una volta fatto ciò, vorrei creare due password (una per esempio "ABC" e l'altra "DEF") così che, una volta schiacciati i pulsanti che rappresentano ciascuno le lettere "A"; "B" e "C", arduino riconosca la password ed accenda il led, se, invece, si schiacciassero i pulsanti che rappresentano ciascuno le lettere "D"; "E" e "F", arduino riconosca la nuova password immessa e spegne il led. Perdonatemi la confusione ma più chiaro di così non riesco ad essere, vi ringrazio per la pazienza dimostratami sino ad ora, ma ho scelto questo forum perchè so che qui c'è veramente il top della professionalità (e non lo dico tanto per dire ma perchè ci credo veramente :) ) e, soprattutto, gente veramente capace ad aiutare chi di programmazione e di elettronica ahimè è alle prime armi come il sottoscritto che ha tanta ma tantissima voglia di imparare attraverso esempi, illustrazioni che solo voi ragazzi potete dare. Grazie infinite. :)

Comunque, per farvi capire come sia nato quella specie di "mostro" che ho spacciato per codice, vi do i codici da cui, a mio modo, ho preso spunto:

1) Arduino keypad:

int i, k, pwcount=0;
char password[] = "1342", entry[10];
void setup()
{
 Serial.begin(9600);
 
for(i=2; i<=5; i++)
pinMode(i, INPUT);
 for(i=6; i<=9; i++)
pinMode(i, OUTPUT);
}

void loop()
{
 
 for(i=6; i<=8; i++){
 reset();
 digitalWrite(i, HIGH);
 if(digitalRead(2)==HIGH && i==6){
   blinker();
   entry[pwcount] = '1';
   pwcount++;
  delay(200);
 Serial.print('1');
 }
 if(digitalRead(3)==HIGH && i==6){
   blinker();
   entry[pwcount] = '4';
   pwcount++;
  delay(200);
 Serial.print('4');
 }
 if(digitalRead(4)==HIGH && i==6){
   blinker();
   entry[pwcount] = '7';
   pwcount++;
  delay(200);
 Serial.print('7');
 }  
  if(digitalRead(5)==HIGH && i==6){
    blinker();
   entry[pwcount] = '*';
   pwcount++;
  delay(200);
 Serial.print('*');
 }
 
  if(digitalRead(2)==HIGH && i==7){
    blinker();
   entry[pwcount] = '2';
   pwcount++;
  delay(200);
 Serial.print('2');
 }
 if(digitalRead(3)==HIGH && i==7){
   blinker();
   entry[pwcount] = '5';
   pwcount++;
  delay(200);
 Serial.print('5');
 }
 if(digitalRead(4)==HIGH && i==7){
   blinker();
   entry[pwcount] = '8';
   pwcount++;
  delay(200);
 Serial.print('8');
 }  
  if(digitalRead(5)==HIGH && i==7){
    blinker();
  entry[pwcount] = '0';
   pwcount++;
  delay(200);
 Serial.print('0');
 }
 
   if(digitalRead(2)==HIGH && i==8){
     blinker();
   entry[pwcount] = '3';
   pwcount++;
  delay(200);
 Serial.print('3');
 }
 if(digitalRead(3)==HIGH && i==8){
   blinker();
  entry[pwcount] = '6';
   pwcount++;
  delay(200);
 Serial.print('6');
 }
 if(digitalRead(4)==HIGH && i==8){
   blinker();
  entry[pwcount] = '9';
   pwcount++;
  delay(200);
 Serial.print('9');
 }  
  if(digitalRead(5)==HIGH && i==8){
   blinker();
  delay(200);
 Serial.println('#');
 pwcount=0;
 for(k=0; k<=4; k++){
  if(k==4){
  Serial.println("Access Granted");
  digitalWrite(9, HIGH);
  break;
  }
  if(password[k] != entry[k]){
    Serial.println("Denied");
    break;
  }
 }
 for(k=0; k<10; k++)
 entry[k]=0;
 }  
}}

void reset(){
  int j;
  for(j=6; j<=8; j++)
  digitalWrite(j, LOW);
}

void blinker(){
 digitalWrite(9, HIGH);
 delay(20);
 digitalWrite(9, LOW);
 
}







2) Arduino Led:


const int buttonPin = 2;    
const int buttonPin2 = 3;

const int ledPin =  13;      

int buttonState = 0;
int buttonState2 = 0;

void setup()
{
 pinMode(ledPin, OUTPUT);      
 pinMode(buttonPin, INPUT);    
 pinMode(buttonPin2, INPUT);
}

void loop()
{
 buttonState = digitalRead(buttonPin);   /
 buttonState2 = digitalRead(buttonPin2);

 if (buttonState == HIGH){      
   digitalWrite(ledPin, HIGH);  
 }
 if (buttonState2 == HIGH){      
   digitalWrite(ledPin, LOW);  
 }
}






Go Up