Guppy
Registrato: Jun 2009
Città: bari
Acquariofilo: Marino
N° Acquari: 1
Età : 52

Messaggi: 230
Post "Grazie" / "Mi Piace"
Mentioned: 0 Post(s)
Annunci Mercatino: 0
|
di fatto le sei porte sono su un scondo 328 bisogna creare un arduino standalone e su di esso caricare questo:
#include <Wire.h>
byte PWMports[] ={
3,5,6,9,10,11};
byte ChannelValue[] = {
0,0,0,0,0,0};
byte cmdnum=255;
byte datanum=255;
void setup()
{
Serial.begin(57600);
Wire.begin(8);
Wire.onReceive(receiveEvent);
randomSeed(analogRead(0));
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
}
void loop()
{
//Serial.println(ChannelValue[0],DEC);
if (cmdnum!=255)
{
ProcessCMD(cmdnum,datanum);
cmdnum=255;
datanum=255;
}
}
void receiveEvent(int howMany) {
if (howMany==5)
{
byte cmd1, cmd2, cmd3, cmd4, cmd5;
cmd1=Wire.receive();
cmd2=Wire.receive();
cmd3=Wire.receive();
cmd4=Wire.receive();
cmd5=Wire.receive();
if (cmd1=='$' && cmd2=='$' && cmd3=='$')
{
cmdnum=cmd4;
datanum=cmd5;
//Serial.println(cmd4,DEC);
//Serial.println(cmd5,DEC);
}
}
else
{
for (int a=0;a<howMany;a++)
{
Wire.receive();
}
}
}
void ProcessCMD(byte cmd, byte data)
{
// Individual Channel
if (cmd>=0 && cmd<=5)
{
ChannelValue[cmd]=data;
analogWrite(PWMports[cmd],data);
}
//Clouds
if (cmd==6)
{
//Serial.println(data,DEC);
for (int b=0;b<7;b++)
{
if (b<6)
{
for (int a=ChannelValue[b];a>0;a--)
{
analogWrite(PWMports[b],a);
delay(data);
}
}
if (b>0)
{
for (int a=0;a<ChannelValue[b-1];a++)
{
analogWrite(PWMports[b-1],a);
delay(data);
}
}
}
}
//Thnderstorm
if (cmd==7)
{
for(int a=0;a<6;a++)
{
analogWrite(PWMports[a],255);
}
delay(30);
for(int a=0;a<6;a++)
{
analogWrite(PWMports[a],0);
}
delay(10);
analogWrite(PWMports[0],255);
delay(100);
analogWrite(PWMports[4],0);
analogWrite(PWMports[3],0);
delay(10);
analogWrite(PWMports[0],0);
analogWrite(PWMports[3],ChannelValue[3]);
analogWrite(PWMports[1],0);
delay(60);
analogWrite(PWMports[3],0);
delay(90);
analogWrite(PWMports[4],ChannelValue[4]);
analogWrite(PWMports[1],ChannelValue[1]);
analogWrite(PWMports[2],0);
delay(100);
analogWrite(PWMports[2],255);
analogWrite(PWMports[5],255);
analogWrite(PWMports[4],0);
delay(30);
analogWrite(PWMports[5],0);
analogWrite(PWMports[0],255);
delay(300);
analogWrite(PWMports[4],ChannelValue[4]);
for(int a=0;a<6;a++)
{
analogWrite(PWMports[a],ChannelValue[a]);
}
}
//Thnderstorm Random
if (cmd==8)
{
for(int a=0;a<10;a++)
{
analogWrite(PWMports[random(6)],random(256));
analogWrite(PWMports[random(6)],0);
analogWrite(PWMports[random(6)],255);
delay(random(200));
}
delay(30);
for(int a=0;a<6;a++)
{
analogWrite(PWMports[a],ChannelValue[a]);
}
}
}
------------------------------------------------------------------------
ma mi spiegate come mai oggi ho riprovato a verificare il pde che ho caricato su ra ed ora mi da pde too big senza fare modifiche?
Ultima modifica di micos_1972; 02-07-2011 alle ore 18:16.
Motivo: Unione post automatica
|