Show Posts
Pages: 1 2 3 [4] 5 6 ... 1463
46  International / Hardware / Re: Partitore di tensione on: September 25, 2014, 01:03:52 pm
Potresti anche lasciar via il potenziometro e usare direttamente una resistenza e un Zener.
Va bene un 4,7V e una resistenza che limita la corrnete in modo che la potenza dissipata alla tensione maggiore non supera la potenza del zener e che alla tensione piccola la crrente non sia troppo bass ( sotto ca 1mA).

Ciao Uwe
47  International / Hardware / Re: Pilotare display 7 segmenti doppia cifra on: September 25, 2014, 12:59:50 pm
Il display che hai comprato é uno coi catodi o coi anodi comuni?
Il MAX7219 sa pilotare in modalitá cifre ( visualizza numeri da 0 a 9 e -, E, H, L, P, blank ) solo display con catodo comune.
Inoltre é possibile con un trucchetto anche usare quelli ad anodo comune usando il MAX7219 in modalitá matrice (pilotaggio di 64 LED 8x8 dove ogni bit dei dati trasmessi corrisponde a un LED acceso o spento)
Il codice sottostante é per il pilotaggio di un display ad anodi comuni. C'ha a scelta due set di caratteri da visualizzare, quello originale del MAX7219 e l' altro con 0-9, a-f per visualizzare numeri esadecimali.
Ciao Uwe

Code:
/*
Library to drive 8 digit 7 segment LED  display with common anode with the MAX7219 in Matrix mode.
by Uwe Federer
*/

int dataIn = 2;
int load = 3;
int clock = 4;

int maxInUse = 4;    //change this variable to set how many MAX7219's you'll use
int e = 0; 


byte digit[8];   // Numbers to display LSB at Right position.
byte matrix[8];   // valute to send to the MAX7219 order LSB right, SEG: R->L: A B C D E F G dp

                     // define max7219 registers
    byte max7219_reg_noop        = 0x00;
    byte max7219_reg_digit0      = 0x01;
    byte max7219_reg_digit1      = 0x02;
    byte max7219_reg_digit2      = 0x03;
    byte max7219_reg_digit3      = 0x04;
    byte max7219_reg_digit4      = 0x05;
    byte max7219_reg_digit5      = 0x06;
    byte max7219_reg_digit6      = 0x07;
    byte max7219_reg_digit7      = 0x08;
    byte max7219_reg_decodeMode  = 0x09;
    byte max7219_reg_intensity   = 0x0a;
    byte max7219_reg_scanLimit   = 0x0b;
    byte max7219_reg_shutdown    = 0x0c;
    byte max7219_reg_displayTest = 0x0f;

/*
byte dots[] ={                  // original MAX7219 code, order: DIG: dp, g, f, e, d, c, b, a
  B00111111,  // 0
  B00000110,  // 1
  B01011011,  // 2
  B01001111,  // 3
  B01100110,  // 4
  B01101101,  // 5
  B01111101,  // 6
  B00000111,  // 7
  B01111111,  // 8
  B01101111,  // 9
  B01000000,  // -
  B01111001,  // E
  B01110110,  // H
  B00111000,  // L
  B01110011,  // P
  B00000000   // blank
};
*/


byte dots[] ={                  // alternative hexadecimal code, order : DIG: dp, g, f, e, d, c, b, a
  B00111111,  // 0
  B00000110,  // 1
  B01011011,  // 2
  B01001111,  // 3
  B01100110,  // 4
  B01101101,  // 5
  B01111101,  // 6
  B00000111,  // 7
  B01111111,  // 8
  B01101111,  // 9
  B01110111,  // A
  B01111100,  // b
  B01011000,  // c
  B01011110,  // d
  B01111001,  // E
  B01110001   // F
};


    void MAXsetnumber(byte data, byte stelle)
    {
      for (byte n=0; n <=7; n++)
       {
       Serial.print (bitRead(dots[data],n),HEX);
       bitWrite(matrix[n], stelle, bitRead(dots[data],n));
       }
       Serial.println(" ");
    }
   
    void MAXupdate()
    {
      for (byte k=0; k <=7; k++)
       {
          maxSingle(k+1, matrix[k]);     
       }
    }

    void putByte(byte data) {
      byte i = 8;
      byte mask;
      while(i > 0) {
        mask = 0x01 << (i - 1);      // get bitmask
        digitalWrite( clock, LOW);   // tick
        if (data & mask){            // choose bit
          digitalWrite(dataIn, HIGH);// send 1
        }else{
          digitalWrite(dataIn, LOW); // send 0
        }
        digitalWrite(clock, HIGH);   // tock
        --i;                         // move to lesser bit
      }
    }
     
    void maxSingle( byte reg, byte col) {   
    //maxSingle is the "easy"  function to use for a     //single max7219
     
      digitalWrite(load, LOW);       // begin   
      putByte(reg);                  // specify register
      putByte(col);                  //((data & 0x01) * 256) + data >> 1); // put data 
      digitalWrite(load, LOW);       // and load da shit
      digitalWrite(load,HIGH);
    }
     
    void maxAll (byte reg, byte col) {    // initialize  all  MAX7219's in the system
      int c = 0;
      digitalWrite(load, LOW);  // begin   
      for ( c =1; c<= maxInUse; c++) {
      putByte(reg);  // specify register
      putByte(col);//((data & 0x01) * 256) + data >> 1); // put data
        }
      digitalWrite(load, LOW);
      digitalWrite(load,HIGH);
    }
     
         
     
    void setup () {   
     
      pinMode(dataIn, OUTPUT);
      pinMode(clock,  OUTPUT);
      pinMode(load,   OUTPUT);
     
      Serial.begin(9600);
      digitalWrite(13, HIGH); 
     
    //initiation of the max 7219
      maxAll(max7219_reg_scanLimit, 0x07);    //scan all Digits 
      maxAll(max7219_reg_decodeMode, 0x00);  // using an led matrix (not digits)
      maxAll(max7219_reg_shutdown, 0x01);    // not in shutdown mode
      maxAll(max7219_reg_displayTest, 0x00); // no display test
       for (e=1; e<=8; e++) {    // empty registers, turn all LEDs off
        maxAll(e,0);
      }
      maxAll(max7219_reg_intensity, 0x0f & 0x0f);    // the first 0x0f is the value you can set
                                                      // range: 0x00 to 0x0f
    } 
     
    void loop () {
     
      for (int m = 0; m<=15; m++)
      {
        MAXsetnumber( m,0);  //MAXsetnumber(byte data, byte stelle)
        MAXsetnumber( m,1);
        MAXsetnumber( m,2);
        MAXsetnumber( m,3);
        MAXsetnumber( m,4);
        MAXsetnumber( m,5);
        MAXsetnumber( m,6);
        MAXsetnumber( m,7);
        MAXupdate();
      Serial.println(m);
      delay(500);
     
    }}
48  International / Hardware / Re: E' possibile collegare due shield sullo stesso pin di arduino? on: September 25, 2014, 12:08:56 pm
Non scrivi quale Arduino vuoi usare.

Il ENC28J60 fa tante cose via Sw e percui usa piú risorse del Controller che un W5100. Potresti avere problemi di RAM esaurita.
Una soluzione é usare un Arduino MEGA.

l' interfaccia SPI é un bus a cui si possono collegare pú dispositivi. Come dice nid69ita ogni dispositivo deve avere il suo pin Enable (CS o SS) e Gli altri 3 sono in comune. La Mega usa pin diversi dalla UNO. Vedi documentazione Arduino SPI.
Ciao Uwe
49  International / Generale / Re: Soft modem shield on: September 25, 2014, 11:57:17 am
No, non ho esperienza anche perche non uso ne un iphon ne un smatphon. ( uso un telefonino che sa telefonare).
Mi sembra strano che il circuito funzioni visto lo schema elettrico.
http://www.elechouse.com/elechouse/images/product/softmodem/Arduino%20softmodem-5.jpg
La documentazione sembra completa ma in mancanza di esperienza non posso essere sicuro.

Ciao Uwe
50  International / Generale / Re: Metodo di trasferimento dati da pc a eeprom on: September 25, 2014, 11:51:04 am
Sei sicuro di non confonder ei Bit con i Byte?
Ciao Uwe
51  International / Deutsch / Re: HIGH/LOW ändern sich beliebig ohne Tasterbenutzung on: September 24, 2014, 03:57:11 pm
Bitte im anderen Post weiterschreiben
Grüeß Uwe
52  International / Deutsch / Re: Welches Messprinzip für Aufprallmessung? on: September 24, 2014, 03:26:08 pm
Ich würde Beschleunigungssensoren an den Ecken verwenden und ein elastisches Elemant. Den genauen Aufschlagpunkt errechnet sich aus dem Verhältnis zu den 4 Beschleunigungwerten. Mit Geophonen müßte es auch funktionieren.
VIele Grüße Uwe
53  International / Software / Re: software per led rgb che fa come vuole lui on: September 23, 2014, 04:08:17 pm
perché non prendi un codice giá esistente?
Cercalo con un motore di ricerca.
Ciao Uwe
54  International / Deutsch / Re: 7 Segment common cathode LG315AH on: September 23, 2014, 04:01:19 pm
Wenn ich common anode 7 Segment Anzeigen hätte dann könnte ich den SAA1064 nehmen, dann hätte ich die Probleme nicht, aber nun sind die 3inch und 1.8inch Anzeigen gekauft.

Ich freue mich über Vorschläge Smile

Da nehme ich mal an daß wegen der größe der Displays einige LED in serie geschaltet sind und mit 5V nicht angesteuert werden können.
Dafällt mir nur ein Schieberegister (zB 74HC595) mit nachgeschaltenen A2983  für die Segmente ein und 5 Transistoren oder ULN2003/ULN2803 für die Katoden. Multiplexen aktiv vom Arduino.

Falls die Displays wider erwarten mit 5V funktionieren dann den MAX7219.

Grüße Uwe
55  International / Deutsch / Re: HIGH/LOW ändern sich beliebig ohne Tasterbenutzung on: September 23, 2014, 03:55:56 pm
Code:
if (digitalRead(Taster3) == HIGH)
   {
    c==0?c=1:c=0;
    delay(WARTENKURZ);
   }
Da versteh ich den Kode jetzt nicht. Wenn der Taster gedrückt ist dann soll der a, b bzw c den Wert negieren ( 0 wird 1 und 1 wird 0)
Ist das so beabsichtigt?
Bei 10mS delay() und nochmal etwas wie 5mS für die Serielle SChnittstelle bzw LCD wechselt der Wert alle 15 mS. Da hast Du keinen so schnellen Finger.
Grüße aus dem heißen Malta.
Uwe
56  International / Deutsch / Re: Betriebsspannung messen on: September 23, 2014, 03:25:53 pm
5,55V ist schon etwas gefährlich den Arduino wegen Überspannung kaputtzumachen.
Wenn Du ein LaAbor hast wird es auch jemanden geben der sich damit auskennt und Dir helfen kann.
Grüße Uwe
57  International / Deutsch / Re: Hardware passwordmanager mit Display, Knopf und Endlosimpulsgeberpoti on: September 23, 2014, 02:31:12 pm
EIn wirklich zufälliger Zufallsgenerator ist nicht so einfach wie bereits gesagt. Random generiert eine Folge von Werten aus einem Startwert heraus. Ist der Stardwert gleich istauch die Zahlenfolge gleich.
Als Arduino Leonardo Nachbau mit USB Einsteckmöglichkeit gibt es auch den LeoStick.

Grüße Uwe
58  International / Hardware / Re: Relè arduino switcha continuamente on: September 23, 2014, 02:00:48 pm
Grazie Michele.... la gestione del carico e fatta con un modulo a doppio relè acquistato che penso sopporti il carico di arduino credo che sia anche opto isolato.... x quando riguarda il pin reset provvedo a mettere la R
grazie mille.......... smiley
Allora ci inviti tutti a casa Tua per visionare il Tuo circito e lo sketch?????
59  International / Deutsch / Re: Stepper-Servo ansteuern on: September 22, 2014, 03:12:21 pm
und einfach den Schrittmotor alle 60/200 Sekunden einen Schritt machen lassen gefällt Dir nicht??
Scheibe mal den Link zu deinem Motorshield.
Grüße Uwe
60  International / Deutsch / Re: HIGH/LOW ändern sich beliebig ohne Tasterbenutzung on: September 22, 2014, 03:11:01 pm
Wenn ein Eingang Phantomergebnisse liefert dann Fehlt am eingang der Pullup oder Pulldownwiderstand.
Zeig uns mal das Schaltbild oder ein Foto.
Grüße Uwe
Pages: 1 2 3 [4] 5 6 ... 1463