Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:vstoica:ambilight [2023/05/23 18:50]
stelian.chioveanu [Hardware Design]
pm:prj2023:vstoica:ambilight [2023/05/29 00:31] (current)
stelian.chioveanu [Download]
Line 49: Line 49:
  
 Pentru partea de ambilight va fi nevoie de un program extern pe nume Prismatik care preia culorile de pe ecran si le trimite prin interfata seriala. Pentru partea de ambilight va fi nevoie de un program extern pe nume Prismatik care preia culorile de pe ecran si le trimite prin interfata seriala.
 +
 +S-a utilizat o intrerupere pe pinul 2, care la apasarea butonului va incrementa variabila "​mode"​ care reprezinta modul de functionare(bluetooth,​ ambilight, spectrum). Am utilizat un debouncer.
 +
 +<​code>​
 +ISR(INT0_vect) {
 +  if((long)(micros() - lastDebounceTime) >= debounceDelay) {
 +    mode++;
 +    lastDebounceTime = micros();
 +  }
 +}
 +</​code>​
 +
 +In functie de variabila "​mode"​ modul de functionare va fi altul:
 +
 +<​code>​
 +void loop() {
 +  if(mode % 3 == 0){
 +    TIMSK1 |= (1 << OCIE1A);
 +    spectrum();
 +    TIMSK1 &= ~(1 << OCIE1A);
 +  }
 +  if(mode % 3 == 1){
 +    bluetooth();​
 +  }
 +  if(mode % 3 == 2){
 +    ambi();
 +  }
 +}
 +</​code>​
 +
 +Am utilizat un timer pentru o functie delay custom. Acest timer incrementeaza o valoare, asteptand modificarea valorii intr-un while acolo unde aveam nevoie de delay.
 +
 +<​code>​
 +ISR(TIMER1_COMPA_vect) {
 +  if (counter_time > 20000) {
 +    counter_time = 0;
 +  }
 +  counter_time++;​
 +}
 +</​code>​
 +
 +Functia "​Light_RGB_LED"​ parseaza culorile primite prin bluetooth:
 +
 +<​code>​
 +void Light_RGB_LED(){
 +  int SP1 = RGB_string.indexOf('​.'​);​
 +  int SP2 = RGB_string.indexOf('​.',​ SP1+1);
 +  int SP3 = RGB_string.indexOf('​.',​ SP2+1);
 +  String R = RGB_string.substring(0,​ SP1);
 +  String G = RGB_string.substring(SP1+1,​ SP2);
 +  String B = RGB_string.substring(SP2+1,​ SP3);
 +  LEDS.showColor(CRGB(R.toInt(),​ G.toInt(), B.toInt()));​
 +}
 +</​code>​
 +
 +Functia "​spectrum"​ cicleaza prin diferite culori(de la turcoaz la albastru si mov).
 +
 +
 +Functia "​ambi"​ este cea pentru ambilight, aceasta preluand valorile de la seriala.
 +
 +
 +Pentru partea de bluetooth, se asteapta valori de genul (x.x.x) unde x este o valoare intre 0 si 255. Dupa extragerea valorilor, toate ledurile vor primi aceasta valoare.
 </​note>​ </​note>​
  
Line 67: Line 129:
  
 <​note>​ <​note>​
-{{pm:​prj2023:​vstoica:​proiect_pm_ambilight.zip| Sursa si diagrame}}+{{pm:​prj2023:​vstoica:​stelian_chioveanu_final.zip| Sursa si diagrame}}
 </​note>​ </​note>​
  
pm/prj2023/vstoica/ambilight.1684857052.txt.gz · Last modified: 2023/05/23 18:50 by stelian.chioveanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0