![]() |
Aquarduino: libreria "base" gestione plafoniera AGGIORNATA al 19/07/2013
Ricarico il mio progetto con arduino sperando che possa essere di aiuto a chiunque voglia cimentarsi nell'utilizzo di questa scheda.
L'obiettivo è quello di creare un controller, basato su arduino, per automatizzare la gestione del mio futuro acquario. Al progetto ho voluto dare il nome "Aquarduino". Per cominciare ho acquistato: - Arduino Mega 2560 R3 rev3 ATmega2560-16AU USB Board & Free USB Cable - Breadboard 760 Point Solderless &65pcs Jumper Cable Wire Kit for Arduino/PIC/ARM - New Arduino I2C RTC DS1307 AT24C32 Real Time Clock Module For AVR ARM PIC - NEW DIY IR Remote Control Kit For Arduino MCU PIC Infrared - 1PCS 12864 Blue Backlight 128X64 Dots Graphic Matrix LCD Module Display LCM (controller ST7920) http://imageshack.us/a/img443/9089/arduinop.png Ho anche acquistato un adattatore della digole per interfacciare LCD tramite il protocollo seriale I2C ma, purtroppo, non ne ha voluto sapere di funzionare. Fortunatamente LCD con controller ST7920 supporta il protocollo SPI e me la sono cavata con soli tre pin. http://imageshack.us/a/img22/7705/lcdricevitorertc.jpg Display Protocollo: SPI Pins: SCK = en = 52, MOSI = RW = 51, CS = RS = di = SS = 53 Backlight: pin 46 (PWM per effetto fade tramite mosfet). L'idea è quella di illuminare lo schermo solo quando sarà rilevato un movimento nella stanza. Libreria: U8glib RTC Protocollo: I2C Pins: SDA = 20, SCL = 21 Vi segnalo un interessante articolo per gestire le momoria interna del chip DS1307. Ricevitore telecomando Pin: 47 Libreria: IRremote Prossimo passo: costruzione e dimerazione plafoniera a led. Ho già provato il driver BZ 1000mA Switching che lavora benissimo con l'uscita PWM di arduino. http://imageshack.us/a/img20/7308/drivereled.png #28#28#28 |
Libreria "base" gestione plafoniera aggiornata al 19/07/2013
Ho buttato giù due righe di codice creando la libreria per gestire la plafoniera che sto costruendo.
La libreria fornisce le funzioni "essenziali" che potrete facilmente estendere in base alle vostre necessità. L'effetto alba e tramonto, qualora sia impostato, viene automaticamente regolato proporzionalmente ai secondi trascorsi in relazione all'ora di accensione e spegnimento del canale. Per ogni canale basta impostare l'ora di accensione e spegnimento, eventuali minuti iniziali/finali di durata effetto alba/tramonto, il valore massimo pwm e il pin del canale. Interfaccia (scheda denominata Plafo.h) codice:
// Created by Niko Furioso on 15/07/13. codice:
// Created by Niko Furioso on 15/07/13. codice:
#include "Plafo.h" Spero che questa libreria vi possa essere di aiuto, naturalmente sono ben accetti consigli o segnalazioni di bug. --------------AGGIORNAMENTI 19/07/2013 - i canali venivano ricreati ogni qualvolta venivano configurati |
Complimenti per il progetto Niko....
|
Niko il codice è fantastico, montato su un arduino uno e finziona una bellezza.
ho messo su un display 20x4 i2c con un I2C RTC DS1307. riesco a far funzionare l'ora sul display ma non so dove trovare il valore pwm di un determonato pin sul tuo codice. ho visto che sono nelle lib ma non so come portarlo nel void loop(). il mio prossimo passo è installare un rotary per cambiare i valori. ho già messo le variabili al posto dei numeri. comunque grande... |
Aggiornata libreria di gestione plafoniera.
Modificata l'implementazione. |
Porca pupazza, ho comprato arduino per curiosita ma non ci capisco na mazza porca pupazza, pero sto post mi stuzzica....mo ce provo.......
|
Quote:
Grazie, mi fa piacere che la libreria ti è tornata utile. Ciò che ti serve è la proprietà "lastPWM" del canale. Per ottenerla devi esporla tramite una funzione pubblica in lettura da inserire sull'interfaccia ("Plafo.h"). Ad esempio: codice:
byte lastPWMChannel(const int channel); codice:
byte Plafo::lastPWMChannel(const int channel){ codice:
byte pwmValue=plafo.lastPWMChannel(white); |
Grazie, mi fa piacere che la libreria ti è tornata utile.
Ciò che ti serve è la proprietà "lastPWM" del canale. Per ottenerla devi esporla tramite una funzione pubblica in lettura da inserire sull'interfaccia ("Plafo.h"). Ad esempio: codice:
byte lastPWMChannel(const int channel); codice:
byte Plafo::lastPWMChannel(const int channel){ codice:
byte pwmValue=plafo.lastPWMChannel(white); Niko Grazie, sei un grande veramente. domani provo i codici e ti faccio sapere. più che utile! ho sostituito le mie centinaia di righe con le tue semplicissime ( nel numero di righe ) librerie. ieri ho implementato il rotary, un LCD 20x4 con un'interfaccia i2C ed un RTC sempre I2C. risparmiando pin sull'uno. ora implemento il menù ed il primo passo è fatto. Grazie ancora Niko!! a disposizione per qualunque cosa ( nel mio piccolo) |
Già il fatto che rendi pubblico il tuo progetto di programmazione con arduino TANTO DI CAPPELLO!!! Sarà che personalmente mi sono arenato da diversi mesi con la mia programmazione con arduino.. Che tu sappia questo potrebbe funzionare anche arduino 2009?!? Mi agevolerebbe molto la mia assoluta inesperienza.. Grazie
|
Ciao, complimenti per il lavoro.
Quali dimmer (marca e modello) utilizzi per pilotare alba e tramonto con il PWM? grazie ciao |
Tutti gli orari sono GMT +2. Attualmente sono le 18:01. |
Powered by vBulletin versione 3.8.9
Copyright ©: 2000 - 2025, Jelsoft Enterprises Ltd.
Traduzione italiana Team: AcquaPortal
User Alert System provided by
Advanced User Tagging v3.2.5 Patch Level 2 (Lite) -
vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Copyright Zero Pixel Srl