Bonjour à tous!
Dans le cadre d'un projet, je cherche à faire une régulation sur le potentiomètre numérique maxim ds1809 de 100KOhm , 64 pas avec un PIC18F4520.
Sachant que :
Je peux mémoriser une valeur de résistance au démarrage
la résistance varie de 1/64 avec des impulses sur les PIN UC/DC (minimum 1ms)
Si longue impulse, la résistance varie exponentiellement, donc non maîtrisable
Je ne sais pas quel autre élément apporter, mais au final, il me faudrait une valeur ohmique (pas forcément fixe) la plus proche possible de la valeure de mon convertisseur AD ( sur 64 aussi)
La résistance varie et se stop au maximum et au minimum, mais je tient pas une valeur entre les deux extrèmes...
Mon code à ce jour:
Initialisation de la variable val_pot à 32.
Code:int Adc_read(int channel) { ADCON0 = (channel << 2) + 0b00000001; ADGO =1; while (ADGO==1) continue; result=ADRESH; result=result&0b11111100; result=result>>2; return (result); } //-------------------------------------------------------------------- //Main void main(void) { InitUc(); while(1) { new_val=Adc_read(0); if (new_val>val_pot) //Si augmentation de la valeure AD { RD1=1; RD0=0; delay_ms(10); } if (new_val<val_pot) //Si diminution de la valeure AD { RD0=1; RD1=0; delay_ms(10); } if (new_val==val_pot) { RD0=1; RD1=1; } val_pot=new_val; } }
-----