Pages: [1] 2   Go Down
Author Topic: 4 uscite digitali usando un pin pwm  (Read 1567 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Funziona se faccio così ?
http://www.japantrip.tk/TEMP/Schema%203.png

Code:
Dovrebbe venire:
uscita da filtro 1 (r1-c1-r2-c2)     1.25 v
uscita da filtro 2 (r6-c3-r7-c4)     2.5 v
uscita da filtro 3 (r11-c5-r12-c6)   3.75 v
uscita da filtro 4 (r16-c7-r17-c8)   5 v

l'opamp aumenta a 5v le uscite e pilota il transistor

pwm 25%   ->  L1 on, altri off
pwm 50%   ->  L2 on, altri off
pwm 75%   ->  L3 on, altri off
pwm 100%  ->  L4 on, altri off
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

idea interessante, le tolleranze de filtri
potrebbero però non far attivare le uscite alla percentuale voluta.
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://www.muzique.com/schem/filter.htm
Ho messo 2 r in serie cosi ho:
12.68 Kohm (misurato con multimetro)
c1 100 nF a lenticchia
Dovrebbe passare solo < 125.6 Hz però passa tutto  smiley-confuse sbaglio io o hanno troppa % le resistenze/il condensatore ?

Code:
void setup()
{
  pinMode(11, OUTPUT);
  digitalWrite(11, LOW);
  Serial.begin(9600);
  Serial.println("Hello Moto TUNZ TUNZ TUNZ");


void loop()
{
  if (Serial.available())
  {
    byte sr = Serial.read();
    switch (sr)
    {
      case 49:
              Serial.println("25%");
              analogWrite(11, 63);
              break;
      case 50:
              Serial.println("50%");
              analogWrite(11, 127);
              break;
              break;
      case 51:
              Serial.println("75%");
              analogWrite(11, 190);
              break;
      case 52:
              Serial.println("100%");
              analogWrite(11, 255);
              break;
      default:
              Serial.println("0%");
              digitalWrite(11, LOW);
    }
  }
}
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

che intendi per passa tutto ? hai un oscilloscopio per controllare visivamente ?

perche' dici di aspettarti che passino frequenze inferiori (hai scritto <) a 126Hz, questo e' un filtro passa banda, quindi tuto cio' che e' pre o post 126 viene attenuato, ma non bloccato del tutto.
attenua 6 dB per ottava
« Last Edit: June 22, 2012, 04:49:22 pm by Testato » Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho fatto solo la parte passa basso per provare quindi dovrebbero passare solo < 125.6 Hz
Non ho un oscilloscopio ma se taglia > 126 Hz con un multimetro messo dopo non dovrei vedere max 1.25v al 25% di pwm e 0 o poco più con pwm >30% ?
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il pwm e' a frequenza fissa, i tuoi filtri passa banda come vorresti usarli ? dovresti ragionare sulla tensione prodotta su una resistenza, non sulla frequenza di taglio di un passa banda
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pensavo cambiasse la frequenza  smiley-sweat
Un 555 si può controllare con un pin di arduino in modo da variare la frequenza che genera ?
Logged

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ma non fai prima a prendere 4 uscite di arduino ed usarle direttamente ? non hai piu' pun disponibili ? che altro fanno tutti i pin del tuo rpogetto ?
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Devo mettere:
Un lcd su uno shift register
un sensore per il telecomando
un buzzer
2 optoisolatori per comandare una cam
un sensore di temperatura
3 motori, 2 sono dc controllati da un l298, i 2 enable li collego assieme ma servono cmq 4 pin pwm
uno stepper
6 fine corsa
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 37
Posts: 1479
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MCP23017.. chip I2C con 16 porte I/O
in 8 porte ci colleghi l'LCD direttamente ( si trovano anche le librerie )
nelle restanti 8 porte ci metti i fine corsa e il buzzer.
Quindi tutta questa roba la gestisci in I2C con solo due pin (SDA e SCL )
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho anche un'altro shift register potrei quindi usarne 2 in cascata per gli out, i finecorsa posso metterli sull'analogico con un partitore e leggere V diversi per ogniuno.
Vorrei però capire se è possibile fare:
controllo frequenza 555 con arduino e non con un pot -> filtri -> amp -> out
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 37
Posts: 1479
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un 555 ( in configurazione astabile ) lo puoi controllare da arduino entrando sul pin 5 ( control voltage ) quello che normalmente si collega a massa con un condensatore.
Usi un pin PWM di arduino, seguito da un filtro passabasso , per generare una tensione.
Ma che frequenze volevi generare ?
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vanno bene 4 frequenze "a caso" tipo 200-400-600-800 Hz servono solo per generare 4 uscite on/off diverse
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 37
Posts: 1479
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mica ho capito cosa vuoi combinare..
parrebbe:
Che tu voglia con un pin di arduino generare 4 frequenze. Che poi con il circuito postato all'inizio le riconosca e possa ricavarne 4 uscite digitali.


Edit: Cavolo, solo ora faccio caso al titolo del post...
E comunque non e' che generare quatto frequenze sul pin PWM hai bisogno di fare chissa' cosa. Usi la libreria  tone(pin, frequency) e le generi
« Last Edit: June 23, 2012, 09:53:05 am by brunello » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 144
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Lo stavo anche usando con il buzzer...
Logged

Pages: [1] 2   Go Up
Jump to: