Cerca nel forum:
Acquaportal - Forum e Community

  





Benvenuti sul Forum di AcquaPortal, la più grande community italiana di acquariofilia!
Sul Forum di AcquaPortal puoi discutere con altri appassionati di acquariofilia, tenere un tuo Blog personale, inserire foto e video, chattare, ed aiutarci a creare un grande database con schede di pesci, invertebrati e prodotti di acquariofilia.


Per entrar a far parte della comunità occorre registrarsi.
Per farlo premi su

Registrazione


Al momento della registrazione ti verrà richiesto di accettare il Regolamento che ti consigliamo di leggere attentamente.
Ti consigliamo inoltre di leggere le FAQ per apprendere le funzionalità principali del forum.
Se invece sei un utente registrato e hai dimenticato i tuoi dati di accesso devi effettuare il Recupero dati.




Fai da te marino Per parlare delle tecniche di costruzione artigianale, per presentare le vostre realizzazioni, e per avere informazioni su dove reperire materiale ed attrezzatura risparmiando tempo e denaro.

 
Condividi Opzioni Visualizzazione
 
Prev Messaggio precedente   Prossimo messaggio Next
Vecchio 11-11-2011, 21:18   #1
superpozzy
Discus
 
L'avatar di superpozzy
 
Registrato: Jul 2008
Città: Verrone
Acquariofilo: Dolce/Marino
N° Acquari: 2 (1 marrone e 1 verde)
Età : 45
Messaggi: 4.637
Foto: 0 Albums: 0
Post "Grazie" / "Mi Piace"
Grazie (Dati): 0
Grazie (Ricev.): 0
Mi piace (Dati): 0
Mi piace (Ricev.): 0
Mentioned: 0 Post(s)
Feedback 5/100%

Annunci Mercatino: 0
codice display e alba/tramonto arduino. eccolo!

visto che qualcuno me lo chiede in mp e se ne parla giusto qua in giro adesso, vi posto il codice alba/tramonto e display.

chiaramente:
1) dovete adattare i collegamenti al VOSTRO display, perchè non tutti funzionano allo stesso modo. questo è per schermi hitachi HD44780 e compatibili... il mio è 20x4
ho lasciato tutta la parte decrittiva per mia comodità. voi potete anche cancellarvela... ;
2) dovete avere un RTC;
3) è fatta per mia esigenza, quindi ha tre stringhe per le mie 3 tipologie di led: "progfreddo" sono i 20.000°K, "progcaldo" i 10.000°K e "progblu" i royal blu.
4) la stringa alba/tramonto ha segnato sopra l'orario che va da 00 (mezzanotte) a 23 (secondo voi?) e sotto le 3 stringhe con la PERCENTUALE di luminosità di quei led che varia in 60 minuti.
perciò se dalle 9 alle 10 la stringa dei led varia da 50 a 100, significa che in un'ora raggiunge il 100%.
se volete farlo in più tempo basta che allungate i tempi (es. ore 9 50%, ore 10 75%, ore 11 100%).

tutto quello che so l'ho scritto.
ora arrangiatevi! -28

ps: chiaramente lo sketch non visualizza HELLO WORLD come scritto....



codice:
/*
  LiquidCrystal Library - Hello World
 
 Demonstrates the use a 16x2 LCD display.  The LiquidCrystal
 library works with all LCD displays that are compatible with the 
 Hitachi HD44780 driver. There are many of them out there, and you
 can usually tell them by the 16-pin interface.
 
 This sketch prints "Hello World!" to the LCD
 and shows the time.
 
  The circuit:
 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)
 
 This example code is in the public domain.

 http://www.arduino.cc/en/Tutorial/LiquidCrystal
 */

// include the library code:
#include <LiquidCrystal.h>
#include <Time.h>  
#include <Wire.h>  
#include <DS1307RTC.h>  // a basic DS1307 library that returns time as a time_t

const int Button1 = 0;     
const int Button2 = 1;  
const int LedFreddo = 9, LedCaldo = 10, LedBlu = 11;

int posx=0,posy=1;

LiquidCrystal lcd(13, 12, 5, 4, 3, 2);
String MenuArray[5][5]={{"Titolo 1"   ,"Titolo 2"   ,"Titolo 3"   ,"Titolo 4"   ,"Titolo 5"},
                        {"Submenu 1 1","Submenu 2 1","Submenu 3 1","Submenu 4 1","Submenu 5 1"},
                        {"Submenu 1 2","Submenu 2 2","Submenu 3 2","Submenu 4 2","Submenu 5 2"},
                        {"Submenu 1 3","Submenu 2 3","Submenu 3 3","Submenu 4 3","Submenu 5 3"},     
                        {"Submenu 1 4","Submenu 2 4","Submenu 3 4","Submenu 4 4","Submenu 5 4"} } ;

//                         00  01  02  03  04  05  06  07  08  09  10  11  12  13  14  15  16  17  18  19  20  21  22  23   
const int ProgFreddo[24]={  0,  0,  0,  0,  0,  1,  5, 30, 70,100,100,100,100,100,100,100,100,100, 40, 20, 10,  0,  0,  0};
const int ProgCaldo[24]= {  0,  0,  0,  0,  0,  0,  0,  3, 30, 70,100,100,100,100,100, 70,100,100,100, 70,  0,  0,  0,  0};
const int ProgBlu[24]=   {  4,  4,  4,  4,  4,  6, 15, 30, 50, 70,100,100, 80, 50, 50,100,100,100,100,100,100, 50,  4,  4};
                        
int OutFreddo, OutCaldo, OutBlu;

void setup() {
  Serial.begin(9600);
  pinMode(Button1, INPUT); 
  pinMode(Button2, INPUT);
  pinMode(LedFreddo, OUTPUT);
  pinMode(LedCaldo, OUTPUT);
  pinMode(LedBlu, OUTPUT);
  // set up the LCD's number of columns and rows: 
  lcd.begin(20, 4);
  // Print a message to the LCD.
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
}

void loop() {
  int i;
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):

  CalcolaLed();
  VisualizzaOra();
  delay(1000);
  // print the number of seconds since reset:
  lcd.clear();
}

void DisplayMenu() {

  if (!digitalRead(Button1)==HIGH) {
    posx++;
    if (posx>4) posx=0;
  }
  if (!digitalRead(Button2)==HIGH) {
    posy++;
    if (posy>4) posy=1;
  }

  lcd.setCursor(4,2) ;
  lcd.print(MenuArray[0][posx]);
  lcd.setCursor(4,3) ;
  lcd.print(MenuArray[posy][posx]);  
}

void VisualizzaOra(){
  
  lcd.setCursor(12,0);
  if (hour()<10) lcd.print("0");
  lcd.print(hour());
  lcd.print(":");
  if (minute()<10) lcd.print("0");
  lcd.print(minute());
  lcd.print(":");
  if (second()<10) lcd.print("0");
  lcd.print(second());
}

void CalcolaLed() {
  int OraAttuale, OraFutura, Minuto, Differenza;
  float Incremento, Attuale, T1;
  OraAttuale= hour()%24;
  OraFutura = (OraAttuale+1)%24;
  Minuto=minute();
//---------------------------------------------------------------------------  
  Differenza=ProgFreddo[OraFutura]-ProgFreddo[OraAttuale];
  Incremento=Differenza/60.0;
  Attuale=Incremento*Minuto+ProgFreddo[OraAttuale];
  OutFreddo= Attuale * 255 / 100 ;
  lcd.setCursor(0,0);
  lcd.print("F:");
  lcd.print((int)Attuale);
//---------------------------------------------------------------------------  
  Differenza=ProgCaldo[OraFutura]-ProgCaldo[OraAttuale];
  Incremento=Differenza/60.0;
  Attuale=Incremento*Minuto+ProgCaldo[OraAttuale];
  OutCaldo= Attuale * 255 / 100 ;
  lcd.setCursor(0,1);
  lcd.print("C:");
  lcd.print((int)Attuale);
//---------------------------------------------------------------------------  
  Differenza=ProgBlu[OraFutura]-ProgBlu[OraAttuale];
  Incremento=Differenza/60.0;
  Attuale=Incremento*Minuto+ProgBlu[OraAttuale];
  OutBlu= Attuale * 255 / 100 ;
  lcd.setCursor(0,2);
  lcd.print("B:");
  lcd.print((int)Attuale);
//---------------------------------------------------------------------------    
  analogWrite(LedFreddo, OutFreddo); 
  analogWrite(LedCaldo, OutCaldo); 
  analogWrite(LedBlu, OutBlu); 

  T1=analogRead(A0)*0.49;
  lcd.setCursor(0,3);
  lcd.print("T:");
  lcd.print((int)T1); 
}
pps: io ho usato mosfet per il pwm.

ppps: qua non me lo incolonna giusto, penso che nel programma di arduino lo faccia...

pppps: prima di dire che non funziona, controllate BENE i vostri collegamenti... -28
superpozzy non è in linea   Rispondi quotando
 

Tag
alba or tramonto , arduino , codice , display , eccolo

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smile sono attive
Il codice IMG è attivo
il codice HTML è disattivato

Vai a



















Tutti gli orari sono GMT +2. Attualmente sono le 12:08. Powered by vBulletin versione 3.8.9
Copyright ©: 2000 - 2024, Jelsoft Enterprises Ltd.
Traduzione italiana Team: AcquaPortal Feedback Buttons provided by Advanced Post Thanks / Like v3.5.0 (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
User Alert System provided by Advanced User Tagging v3.2.5 Patch Level 2 (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Copyright Zero Pixel Srl
Page generated in 0,48928 seconds with 15 queries