Show Posts
Pages: 1 ... 6 7 [8] 9 10
106  International / Generale / che progetto mi consigliate? on: November 26, 2012, 11:11:10 am
che progetti mi consigliate di fare sapendo che ho acquistato questo kit, una breadboard più grande e altri 30 cavetti?
http://www.homotix.it/catalogo/arduino-kit/homotix-kit-arduino-avanzato
considerando che ho già fatto un progetto che in base alla temperatura e alla luce rilevata cambia il colore del rgb, accende dei led, scrive sull'lcd.
mi piacerebbe usare anche il motore e capire come funzionano i transistor,relè...
grazie in anticipo smiley
107  International / Software / Re: programma non va on: November 24, 2012, 02:31:02 pm
quindi mi consigliate di salvare tutte le variabili sulla eproom?
108  International / Software / Re: programma non va on: November 24, 2012, 02:27:16 pm
ok grazie mille vedo cosa riesco a combinare ...
i problemi di fare un chimico biologico come scuola è appunto che non mi insegnano a programmare smiley-razz
109  International / Software / Re: programma non va on: November 23, 2012, 01:10:04 pm
e qui la parte che da problemi
Code:
void gioco()
{

  while(d==0)
  {
    premuto1=analogRead(button1);
    premuto2=analogRead(button2);
    premuto3=analogRead(button3);
    a=analogRead(button1);
    b=analogRead(button2);
    c=analogRead(button3);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("benvenuti");
    lcd.setCursor(0,1);
    lcd.print("nell'arduquiz");
    delay(5000);
    lcd.clear();
    lcd.print("istruzioni");
    delay(2500);
    lcd.clear();
    lcd.print("tasto 3");
    lcd.setCursor(0,1);
    lcd.print("saltare la domanda");
    delay(2500);
    lcd.clear();
    lcd.print("gli altri 2 servono ");
    lcd.setCursor(0,1);
    lcd.print("per indicare le risposte");
    delay(2500);
    lcd.clear();
    lcd.print("risposta giusta");
    lcd.setCursor(0,1);
    lcd.print("+1000 punti");
    delay(2000);
    lcd.clear();
    lcd.print("risposta sbagliata");
    lcd.setCursor(0,1);
    lcd.print("- 150 punti");
    delay(2000);
    lcd.clear();
    lcd.print("risposta saltata");
    lcd.setCursor(0,1);
    lcd.print("+ 0 punti");
    delay(2000);
    lcd.clear();
    lcd.print("per ricominciare");
    lcd.setCursor(0,1);
    lcd.print("tasto reset");
    delay(2000);
    lcd.clear();
    lcd.print("ogni domanda resta");
    lcd.setCursor(0,1);
    lcd.print("scritta x 5s");
    delay(2000);
    lcd.clear();
    lcd.print("sono gentile e ");
    lcd.setCursor(0,1);
    lcd.print("ti regalo un punto");
    delay(2000);
    lcd.clear();
    lcd.print("tasto 1 per iniziare");
    delay(1000);
    while(!(premuto1>=600))
    {
      premuto1=analogRead(button1);
      premuto2=analogRead(button2);
      premuto3=analogRead(button3);
      a=analogRead(button1);
      b=analogRead(button2);
      c=analogRead(button3);
    }
    if(premuto1>=600)
    {
      lcd.clear();
      lcd.print("ok allora iniziamo :)");
      delay(2000);
      lcd.clear();
      lcd.print("3....");
      delay(1000);
      lcd.clear();
      lcd.print("2.....");
      delay(1000);
      lcd.clear();
      lcd.print("1.........");
      delay(1000);
      lcd.clear();
      lcd.print("viaaaaaaaaaa :)");
      delay(500);
      lcd.clear();
      lcd.print("quale e' la");
      lcd.setCursor(0,1);
      lcd.print("capitale d'Italia");
      delay(5000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("tasto 1 = Roma");
      lcd.setCursor(0,1);
      lcd.print("tasto 2 = Milano");
      delay(1000);
      a=0;
      b=0;
      c=0;
      while (! ((a>=600) || (b>=600) || (c>=600))){
        premuto1=analogRead(button1);
        premuto2=analogRead(button2);
        premuto3=analogRead(button3);
        a=analogRead(button1);
        b=analogRead(button2);
        c=analogRead(button3);
      }
      if(premuto1>600)
      {
        punteggio+1000;    // qui non da i punti
        punteggio2=punteggio;
      }
      if(premuto2>=600)
      {
        punteggio=punteggio - 150;
        punteggio2=punteggio;
      }
      if(premuto3>=600);
      {
        punteggio=punteggio + 1;
      }
      lcd.clear();
      lcd.print("punteggio");
      lcd.setCursor(0,1);
      lcd.print(punteggio);
      delay(1000);
      lcd.clear();
      lcd.print("quale e' la capitale");
      lcd.setCursor(0,1);
      lcd.print("dell'India");
      delay(5000);
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("tasto 1 = guarana'");
      lcd.setCursor(0,1);
      lcd.print("tasto 2 = New Delhi");
      delay(1000);
      while (! ((a>=600) || (b>=600) || (c>=600))){     // da qui in poi non si ferma più ad aspettare la risposta
        premuto1=analogRead(button1);
        premuto2=analogRead(button2);
        premuto3=analogRead(button3);
        a=analogRead(button1);
        b=analogRead(button2);
        c=analogRead(button3);
      }
      if(premuto1==HIGH)
      {
        punteggio=punteggio - 150;
        punteggio2=punteggio;
      }
      if(premuto2==HIGH)
      {
        punteggio=punteggio + 1000;
        punteggio2=punteggio;
      }
      if(premuto3==HIGH)
      {
        punteggio=punteggio + 0;
        punteggio2=punteggio;
      }
      lcd.print("punteggio");
      lcd.setCursor(0,1);
      lcd.print(punteggio);
      delay(1500);
      lcd.clear();
      lcd.print("quanto fa");
      lcd.setCursor(0,1);
      lcd.print("1+1-1x1:1");
      delay(5000);
      lcd.print("tasto 1=0");
      lcd.setCursor(0,1);
      lcd.print("tasto 2=1");
      while (! ((a>=600) || (b>=600) || (c>=600))){
        premuto1=analogRead(button1);
        premuto2=analogRead(button2);
        premuto3=analogRead(button3);
        a=analogRead(button1);
        b=analogRead(button2);
        c=analogRead(button3);
      }
      if(premuto1>600);
      {
        punteggio=punteggio-150;
      }
      if(premuto2>600);
      {
        punteggio=punteggio+1000;
      }
      if(premuto3>600)
      {
        punteggio=punteggio+0;
      }
      lcd.clear();
      lcd.print("punteggio");
      lcd.setCursor(0,1);
      lcd.print(punteggio);
      delay(1000);
      lcd.clear();
    }
  }
  if(premuto1<600)
  {
    delay(10);
  }
}
ho dovuto inserire il codice in 2 risposte perchè era troppo lungo  smiley-red
110  International / Software / Re: programma non va on: November 23, 2012, 01:09:04 pm
Code:
#include <LiquidCrystal.h>
#include <leOS.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
leOS myOS;
const int button1=A3;
const int button2=A4;
const int button3=A2;
const int red=8;
const int green=9;
const int blue=10;
const int fotoresistenza=0;
const int termistore=1;
const int ledr=13;
const int ledb=6;
const int ledv=7;
const int led3=2;
int premuto1;
int premuto2;
int premuto3;
int punteggio;
int punteggio2;
int luce;
float valore;
float temperatura;
int tempo;
int velocita;
int a=0;
int b=0;
int c=0;
int d=0;



void setup()
{
  pinMode(led3,OUTPUT);
  pinMode(ledv,OUTPUT);
  pinMode(ledr,OUTPUT);
  pinMode(ledb,OUTPUT);
  pinMode(green,OUTPUT);
  pinMode(blue,OUTPUT);
  pinMode(red,OUTPUT);
  pinMode(fotoresistenza,INPUT);
  pinMode(termistore,INPUT);
  myOS.begin();
  myOS.addTask(ledOn,500);
  myOS.addTask(ledOff,1000);
  myOS.addTask(schermo,425,PAUSED);
  myOS.addTask(seriale,425,PAUSED);

  lcd.begin(16,2);
  Serial.begin(9600);  
}



void loop()
{
  luce=analogRead(fotoresistenza);
  valore=analogRead(termistore);
  velocita=10;
  temperatura=valore*(23/675);
  tempo=(1000/temperatura)*1;
  a=analogRead(button1);
  b=analogRead(button2);
  c=analogRead(button3);
  lcd.print("selezionare il");
  lcd.setCursor(0,1);
  lcd.print("programma");
  while (! ((a>=600) || (b>=600) || (c>=600))){
    a=analogRead(button1);
    b=analogRead(button2);
    c=analogRead(button3);
  }

  if(a>=600)
  {

    funzioneuno();
  }
  if(b>=600);
  {

    gioco();
  }
  if(c>=600)
  {
    gioco();
  }
}


void foto()
{
  if(luce<100)
  {

    digitalWrite(red, LOW);
    digitalWrite(green, LOW);
    digitalWrite(blue,HIGH);
    delay(5);


  }  
  if(luce>100 && luce <200)
  {
    digitalWrite(blue,HIGH);
    digitalWrite(red,LOW);
    digitalWrite(green,LOW);
    delay(5);
  }
  if(luce>200 && luce <300)
  {
    digitalWrite(red, LOW);
    digitalWrite(green, LOW);
    digitalWrite(blue,HIGH);
    delay(4);
  }
  if(luce>300 && luce<400)
  {
    digitalWrite(blue, LOW);
    digitalWrite(red,LOW);
    digitalWrite(green,HIGH);
    delay(4);
  }
  if(luce>400 && luce<500)
  {
    digitalWrite(blue, LOW);
    digitalWrite(red, LOW);
    digitalWrite(green,HIGH);
    delay(4);
  }
  if(luce>500 && luce<600)
  {
    digitalWrite(blue, LOW);
    digitalWrite(red, LOW);
    digitalWrite(green,HIGH);
    delay(4);
  }
  if(luce>600 && luce<700)
  {
    digitalWrite(blue, LOW);
    digitalWrite(green, LOW);
    digitalWrite(red,HIGH);
  }
  if(luce>700 && luce<800)
  {
    digitalWrite(blue, LOW);
    digitalWrite(green, LOW);
    digitalWrite(red,HIGH);
  }
  if(luce>800);
  {
    digitalWrite(blue, LOW);
    digitalWrite(green, LOW);
    digitalWrite(red,HIGH);
  }
}


void term()
{
  if(temperatura<20 && temperatura >16)
  {
    digitalWrite(ledv,LOW);
    digitalWrite(ledr,LOW);
    digitalWrite(ledb,HIGH);
    delay(tempo);  
  }
  if(temperatura>20 && temperatura <25)
  {
    digitalWrite(ledb,LOW);
    digitalWrite(ledr,LOW);
    digitalWrite(ledv,HIGH);
    delay(tempo);
  }
  if(temperatura>25)
  {
    digitalWrite(ledb,LOW);
    digitalWrite(ledv,LOW);
    digitalWrite(ledr,HIGH);
    delay(tempo);
  }
  if(temperatura<15)
  {
    digitalWrite(ledr,HIGH);
    digitalWrite(ledv,HIGH);
    digitalWrite(ledb,HIGH);
    delay(500);
  }
}


void controllo()
{
  foto();
  term();
  myOS.restartTask(schermo);
  myOS.restartTask(seriale);
}


void seriale()
{
  delay(velocita);
  Serial.print("ram libera= ");
  Serial.println(getFreeRam());
  Serial.print("temperatura= ");
  Serial.println(temperatura);
  Serial.println();
}

void ledOn()
{
  digitalWrite(led3,HIGH);
}

void ledOff()
{
  digitalWrite(led3,LOW);
}

void schermo()
{
  lcd.clear();
  lcd.print("temp= ");
  lcd.print(temperatura);
  lcd.setCursor(0,1);
  lcd.print("luce= ");
  lcd.print(luce);
}

unsigned int getFreeRam()
{
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}

void funzioneuno()
{
  lcd.clear();
  lcd.print("programma 1 cavo");
  lcd.setCursor(0,1);
  lcd.print("usb consigliato");
  delay(2000);
  while(d==0)
  {
    luce=analogRead(fotoresistenza);
    valore=analogRead(termistore);
    velocita=10;
    temperatura=valore*0.031578947;
    foto();
    term();
    myOS.restartTask(schermo);
    myOS.restartTask(seriale);

  }
}

void funzionedue()
{
  lcd.clear();
  lcd.print("programma 2 cavo");
  lcd.setCursor(0,1);
  lcd.print("usb obbligatorio");
  delay(1000);
  lcd.clear();
  while(d==0)
  {
    luce=analogRead(fotoresistenza);
    valore=analogRead(termistore);
    velocita=10;
    temperatura=valore*0.031578947;
    seriale();
  }
}

111  International / Software / programma non va on: November 23, 2012, 01:08:18 pm
ciao a tutti smiley
lo so vi sto stressando con le domande, prometto che cercherò di farne di meno smiley-razz
sto creando un programma che all'avvio in base a quale tasto premo avvia un sottoprogramma(o come si chiama xD )
fino a qui tutto apposto smiley il primo programma va ovvero legge la temperatura e la scrive sul seriale e sul lcd.
il problema sta nel secondo... è un quiz ancora in fase di sviluppo
praticamente alla prima domanda funzione bene (a parte che se fai giusto non ci ti da i punti se qualcuno sa come risolverlo mi fa un favore)
poi dalla seconda domanda in poi non si ferma più ad aspettare la risposta fa quello che vuole...
ora vi carico il programma

grazie infinite in anticipo smiley
112  International / Software / Re: multiprogramma on: November 14, 2012, 02:05:02 pm
risolto grazie a tutti per la pazienza smiley
113  International / Software / Re: multiprogramma on: November 14, 2012, 01:08:20 pm
intendo qui sul forum smiley
114  International / Software / Re: multiprogramma on: November 14, 2012, 12:40:16 pm
ho provato ma non va
come faccio ad aggiungere il programma con la scritta code? ovvero come aveva fatto erpomata?
115  International / Software / Re: multiprogramma on: November 14, 2012, 11:58:26 am
be si si questo lo avevo immaginato anche se non mi viene in mente niente che si possa usare sia come input che come output smiley
116  International / Software / Re: multiprogramma on: November 14, 2012, 11:51:44 am
ok grazie smiley adesso appena posso provo e vi faccio sapere smiley
117  International / Software / Re: multiprogramma on: November 14, 2012, 11:48:25 am
aaaaaa ok grazie ora ho capito smiley smiley

mi ci è voluto un po ma alla fine ci sono arrivato smiley
118  International / Software / Re: multiprogramma on: November 14, 2012, 11:43:16 am
scusa ae continuo a rompere ma sono stupido smiley
ci sono delle cose che non capisco del programma (l'avevo detto che ero stupido   smiley-lol )
while non significa finchè ovvero non dovrebbe leggere i valori solo finché uno dei tasti è premuto?

while (! ((a==HIGH ) || (b==HIGH))){
  a=digitalRead(3);
  b=digitalRead(4);
}

e poi nella seconda parte del programma non ho capito una cosa... smiley
dice che se schiaccio il bottone a avvia il programma 1 altrimenti se non lo schiaccio avvial il programma 2... ma se non premo niente ?? smiley-lol
119  International / Software / Re: multiprogramma on: November 14, 2012, 11:30:58 am
praticamente quando accendo arduino (gli do corrente) non deve fare niente deve solo aspettare che io schiacci uno dei due bottoni e in base a quale bottone schiaccio avvia un programma diverso
scusa se non mi ero spiegato bene smiley
120  International / Software / Re: multiprogramma on: November 14, 2012, 11:25:38 am
io intendevo avviare un programma o l'altro in base a che bottone schiaccio
una cosa del genere l'avevo provata quando cercavo di impostare un bottone per avviare il programma
avevo scritto una cosa del genere

const int button=2;
const int led=3;
int buttonstate=0;
void setup()
{
  pinMode(button,INPUT);
}
void loop()
{
  buttonstate=digitalRead(button);
  if(buttonstate==HIGH)
  {
    controllo();      //avvia il programma
  }
  else
  {
    digitalWrite(led,HIGH);
  }
}

ma non va ovvero avvia subito il programma
i collegamenti sono giusti perchè li ho copiati dagli esempi di frizing e ricontrollati più volte
Pages: 1 ... 6 7 [8] 9 10