4 uscite digitali usando un pin pwm

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

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

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

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 :~ sbaglio io o hanno troppa % le resistenze/il condensatore ?

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);
    }
  }
}

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

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% ?

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

Pensavo cambiasse la frequenza :sweat_smile:
Un 555 si può controllare con un pin di arduino in modo da variare la frequenza che genera ?

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 ?

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

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 )

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

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 ?

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

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


Lo stavo anche usando con il buzzer...

hem...
con tone(11, 30); ho in uscita dal low pass da 126 hz 2.35v come con tone(11, 800); :cold_sweat:

interessante la tone, bel suggerimento brunello

qui ho trovato un esempio con le varie frequenze Gioblu.com is for sale | HugeDomains

Cmq credo che nessuno adotterebbe una soluzione come quella che vuoi fare tu per avere 4 uscite, se e' una questione didattica allora va bene, altrimenti ce ne sono altre come lòe gia' citate, i2c o shiftregister

il filtro passa basso che ce lo metti a fare ?
Vuoi generare una frequenza o una tensione ?

lui vuole usare una configurazione passa banda, perche' vuole 4 on-off
se togliesse il passabasso usando la frequenza massima si accenderebbero tutte e 4 le uscite