Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Helisignaaliga käivituv relee

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    #46
    See skeem ühendaks kahte erinevat arduino skeemi ja seda kodeeringut nii hästi ei tunne. Jagati linki, kus üks teise ehitusega samamoodi toimiv asi ja uurides seda tundus nagu rohkem sobivam resiivri puhul kasutamiseks, heli sutes tundlikum.

    Skeem oleks ise selline aga vist miskit ei muutuks kui +12V muuta ka +5V Relee tuleks +5v

    Click image for larger version

Name:	p38-fig1.gif
Views:	303
Size:	7,5 KB
ID:	1108012
    Seda sisendit tuleks siis kasutada alguses.

    Click image for larger version

Name:	p38-fig4.gif
Views:	305
Size:	3,9 KB
ID:	1108013
    ESP Project Pages - simple circuit switches on power when it receives an audio signal - also works as sound activated switch
    viimati muutis kasutaja Ints28; 08 m 2020, 02:36.

    Comment


      #47
      Siin on nüüd selline episood et kui sa seda lihtsamat skeemi tööle ei saand ja nüüd liigud raskema poole et selle ehk saad tööle siis see ei pruugi sul eriti hästi välja tulla nii kuidas soovitud.

      See kood on ajsa juures kõige lihtsam asi selle võin mina või keegi muu sõbralik foorumi kasutaja sulle valmis kirjutada. Kahte arduinot sul tegelikult vaja ei lähe. Tuleb välja arvestada takisti väärtus 4n35 kaitseks ja see arduinole vahele ja siis kas internal pull down arduinol või väline pull down resistor ja saadki kõik ühte arduinosse 3 komponenti, mõni rida koodi ja asi valmis.
      "No one likes a smartass, but everyone loves being one"

      Comment


        #48
        4B35 on optron. Ma arvan, et kui õigest kasutada, saab ikka. Aga kuna pole ise teinud, siis ilma testimata skeemi ei anna .

        Elu on nagu lintmakilt muusika kuulamine. Mida lõpupoole, seda kiiremini hakkab linti äraandev ketas pöörlema...

        Comment


          #49
          Saab kasutada küll. Olen ise kasutanud kõlari signaalist ja lisanud lm3914 ledidega vu meetriks bt kõlarile.

          siin mingi 3-4 a tagune bt kõlar kus nii ehitasin

          video, jagamine, kaameratelefon, videotelefon, tasuta, üleslaadimine


          video, jagamine, kaameratelefon, videotelefon, tasuta, üleslaadimine

          "No one likes a smartass, but everyone loves being one"

          Comment


            #50
            Siia lisaks veel vaadates postitus nr5, käesoleval teemal siis seal näha et teine arduino pro mini täiesti mittevajalik koos selle helisignaali peale reageeriva releega. Arduinol veel pinne vabu ja tuleks see “floating” Fx kodeerida siia ühte arduinosse juurde ja lihtsalt signaal läbi optocoupleri arduinole kui kaua muusika vait olnud ja siis juba koodiga ära lähendada kogu asi.
            "No one likes a smartass, but everyone loves being one"

            Comment


              #51
              Esmalt postitatud Firefox poolt Vaata postitust
              Siia lisaks veel vaadates postitus nr5, käesoleval teemal siis seal näha et teine arduino pro mini täiesti mittevajalik koos selle helisignaali peale reageeriva releega. Arduinol veel pinne vabu ja tuleks see “floating” Fx kodeerida siia ühte arduinosse juurde ja lihtsalt signaal läbi optocoupleri arduinole kui kaua muusika vait olnud ja siis juba koodiga ära lähendada kogu asi.
              Seda optocouplerit pole ju kah vaja, Arduino teab ise juba väga hästi kui vaikus liiga pikaks on jäänud - üheski seitsmest eku kanalist pole mingit märkimisväärset signaali tulnud.Llihtsalt kui signaal tuleb, siis nullid kaunteri, aga kui mingi arv loope tehtud, ja signaali pole, kukub demo moodi, ise samal ajal signaale küsimas käies.

              Kui MSGEQ7 kivi kätte saan, siis asun koodi kribama.
              viimati muutis kasutaja klm; 09 m 2020, 21:20.
              MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
              KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

              Comment


                #52
                Kusjuures Optocouplerit pole vaja tõesti hakkasin seda ise ka hiljem mõtlema. Mõte vist jäi sellest et selle kohta siin küsiti ennem.

                Tundub huvitav kivi see msgEq7, peab vist isegi tellima ja proovima.
                "No one likes a smartass, but everyone loves being one"

                Comment


                  #53
                  Tundub, et huvitav teema tekkinud. Selle ehituse videot nähes tekkis huvi seda tegema hakata. Tuleb siis kodukino kõlaritele, tuleb keskele ja äärmised. VU meetri jaoks sai ka plaadid söövitatud. See teeks siis asja lihtsamaks, kui selle vaba moodi sama plaadile saaks panna heli vaikides toimima. Huvitatud ka siis sellest. Ise sellist koodi juppi kirjutada ei mõistaks, siis oligi sellise lahendi kasutamine lihtsam. Kas selle jupi ühendamisel kahe arduino koodiga neid koode ka vaja oleks ?

                  Comment


                    #54
                    See esimene jupp koodi sul olemas, nyyd otsi see teine jupp koodi ka mis mõeldud sellele teisele arduinole. Seejärel kasuta (millis) funktsiooni arduinos kus loed kui kaua on sellest hetkest möödas kus vaikus tekkis, seejärel saad rakendada floating fx koodi, ja juhul kui jälle tekib state change läheb jälle vu meeter käiku.
                    Pm suht copy paste ja selle (millis) funktsiooni kohta saad arduino examplitest nitti. VT examples debounce arduinos.

                    "No one likes a smartass, but everyone loves being one"

                    Comment


                      #55
                      Siin juutuubi lingi all on kood ja libraryd olemas sealt saad näidise võtta millist efecti pärast muusika vait jäämist tahad.
                      With this videos i show to you how to programming Arduino, PCB layout and step by step installation. So you can make it yourself at home.If you have any ques...


                      kirjutasin valmis midagi, pm copy paste, otse arduino debounce exapmlist ja ülejäänud see mis sul seal olemas juba peaks olema.
                      pin 10 peaks ka minema nüüd led ribasse, näidis kood siin pärast //kommentaari all on kirjas kuhu pead void floatinFX()-i kopeerima selle effecti mida tahad.
                      Mul omal veel rgb led riba pole mille peal katsetada aga kui sul olemas saad seda proovida. See peaks nüüd 90 seki pärast hakkama floatima niisama.

                      Kood


                      HTML kood:
                      //7 BAND SPECTRUM ANALYZER MSGE07
                      //DESIGN PLATINUM 2019 www.youtube.com/c/PLATINUMKIT
                      //FACEBOOK https://www.facebook.com/LegendMasters/
                      //YOUTUBE VIDEO DIY ACRYLIC PART.1 https://youtu.be/xDKbpwumgF8
                      //YOUTUBE VIDEO DIY ACRYLIC PART.2
                      //YOUTUBE VIDEO DIY INFINITY MIRROR https://youtu.be/j2-0d9xBDJk
                      //THIS IS NOT FOR SALE ONLY FOR HOBBIES.
                      //WE SHARE TO ADD A KNOWLEDGE SCIENCE.
                      
                      
                      
                      
                      
                      
                      
                      
                      #include <Adafruit_NeoPixel.h>
                      #ifdef __AVR__
                      #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
                      #endif
                      
                      // Which pin on the Arduino is connected to the NeoPixels?
                      // On a Trinket or Gemma we suggest changing this to 1:
                      #define LED_PIN 10
                      
                      // How many NeoPixels are attached to the Arduino?
                      #define LED_COUNT 60
                      
                      // NeoPixel brightness, 0 (min) to 255 (max)
                      #define BRIGHTNESS 50
                      
                      // Declare our NeoPixel strip object:
                      Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
                      // Argument 1 = Number of pixels in NeoPixel strip
                      // Argument 2 = Arduino pin number (most are valid)
                      // Argument 3 = Pixel type flags, add together as needed:
                      // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
                      // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
                      // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products)
                      // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
                      // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      
                      #include <math.h>
                      #include <Adafruit_NeoPixel.h>
                      #include "MSGEQ7V1.h"
                      Timer t;
                      #define Acolor A0
                      #define Scolor A6
                      #define Pcolor A7
                      #define MAX_BRIGHTNESS 255
                      #define MIN_BRIGHTNESS 10
                      const int brightnessInPin = A2;
                      int led = 5;
                      unsigned long x;
                      unsigned long y = 0;
                      const byte analogPin = A1;
                      const byte strobePin = 3;
                      const byte resetPin = 2;
                      const byte dataPin = 4;
                      const byte numBand = 20; //number of LEDs
                      const byte numTop = 0;
                      const int noise[] = {20, 20, 20, 20, 20, 20, 20};
                      const float gain[] = {2.05, 2.05, 2.05, 2.05, 2.05, 2.05, 2.05}; //Frequency GAIN
                      //Frequency = 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz, 16kHz
                      const unsigned long dlay = 30;
                      
                      enum audio {
                      MONO,
                      RIGHT,
                      LEFT };
                      int spectrumReadR;
                      int spectrumReadL;
                      int audio = MONO;
                      int mag = 0;
                      int numON = 0;
                      float fl_mag = 0.0;
                      int k;
                      int a;
                      int s;
                      int peakArray[7];
                      byte
                      peak = 0,
                      dotCount = 0;
                      
                      
                      
                      
                      int buttonState; // the current reading from the input pin
                      int lastButtonState = HIGH; // the previous reading from the input pin
                      
                      // the following variables are unsigned longs because the time, measured in
                      // milliseconds, will quickly become a bigger number than can be stored in an int.
                      unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
                      unsigned long debounceDelay = 90000; // the debounce time; increase if the output flickers
                      
                      
                      
                      
                      
                      
                      void setup() {
                      
                      // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
                      // Any other board, you can remove this part (but no harm leaving it):
                      #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
                      clock_prescale_set(clock_div_1);
                      #endif
                      // END of Trinket-specific code.
                      
                      strip.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
                      strip.show(); // Turn OFF all pixels ASAP
                      strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)
                      
                      
                      Serial.begin(9600);
                      pinMode(resetPin, OUTPUT);
                      pinMode(strobePin, OUTPUT);
                      pinMode(dataPin, OUTPUT);
                      strip.begin();
                      strip.show();
                      digitalWrite(resetPin,HIGH);
                      delayMicroseconds(5);
                      digitalWrite(strobePin,HIGH);
                      delayMicroseconds(50);
                      digitalWrite(strobePin,LOW);
                      delayMicroseconds(50);
                      digitalWrite(resetPin,LOW);
                      delayMicroseconds(5);
                      digitalWrite(strobePin,HIGH);
                      delayMicroseconds(100);
                      t.every(80,peakLower);
                      }
                      void loop() {
                      
                      CReSet();
                      x = millis();
                      
                      if (spectrumReadL != lastButtonState) {
                      // reset the debouncing timer
                      lastDebounceTime = millis();
                      }
                      
                      if ((millis() - lastDebounceTime) > debounceDelay) {
                      // whatever the reading is at, it's been there for longer than the debounce
                      FloatingFX();
                      }
                      
                      }
                      
                      
                      int dimH = 0;
                      int p = 0;
                      const long interval = 1;
                      void CReSet(){
                      if(x - y >= interval){
                      y = x;
                      dimH = map(p, 0, 4000, 0, 255);
                      analogWrite(led, dimH);
                      if(p >= 4000){ p = 0; }
                      else { p = p + 1; }
                      }
                      int mappedValue = map(analogRead(brightnessInPin), 0, 1023, 0, 255);
                      strip.setBrightness(constrain(mappedValue, MIN_BRIGHTNESS, MAX_BRIGHTNESS));
                      a = analogRead(Acolor);
                      a = map(a, 0, 1023, 0,400);
                      s = analogRead(Scolor);
                      s = map(s, 0, 1023, 35,1500);
                      k = analogRead(Pcolor);
                      k = map(k, 0, 1023, 0,750);
                      for(byte band = 1; band <= 7; band++) {
                      digitalWrite(strobePin, LOW);
                      delayMicroseconds(40);
                      spectrumReadL = analogRead(analogPin);
                      digitalWrite(strobePin, HIGH);
                      mag = (spectrumReadR + spectrumReadL) / 2;
                      mag = max(0, (mag - noise[band-1]));
                      fl_mag = gain[band-1] * float(mag);
                      numON = map(fl_mag, 0, 1024, 1, numBand+1);
                      anyBand(band);
                      if(peakArray[band-1]==0) strip.setPixelColor(peakArray[band-1] + numBand*(band-1), strip.Color(0,0,0));
                      else strip.setPixelColor(peakArray[band-1] + numBand*(band-1), Wheel(map(10,0,numBand-0,k,255)));
                      t.update();
                      }
                      strip.show();
                      delay(dlay);
                      }
                      
                      void readBand(byte band) {
                      for(byte band = 1; band <= 7; band++) {
                      digitalWrite(strobePin, LOW);
                      delayMicroseconds(40);
                      spectrumReadL = analogRead(analogPin);
                      digitalWrite(strobePin, HIGH);
                      mag = (spectrumReadR + spectrumReadL) / 2;
                      mag = max(0, (mag - noise[band-1]));
                      fl_mag = gain[band-1] * float(mag);
                      numON = map(fl_mag, 0, 1024, 1, numBand+1);
                      anyBand(band);
                      }
                      }
                      
                      void anyBand(byte band) {
                      for(byte i = 0; i < numBand; i++){
                      if(i < (numON - numTop - 1)){
                      strip.setPixelColor(i + numBand*(band-1), Wheel(map(i,0,numBand-s,a,255)));
                      }
                      else if(i >= numON){
                      strip.setPixelColor(i + numBand*(band-1), strip.Color(0,0,0));
                      }
                      else{
                      if(i > peakArray[band-1]) peakArray[band-1] = i;
                      }
                      }
                      }
                      
                      void peakLower() {
                      for(byte i = 0; i < 7; i++) {
                      if(peakArray[i] > 1) peakArray[i]--;
                      else continue;
                      }
                      }
                      
                      uint32_t Wheel(byte WheelPos) {
                      WheelPos = 255 - WheelPos;
                      if(WheelPos < 85) {
                      return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
                      }
                      if(WheelPos < 170) {
                      WheelPos -= 85;
                      return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
                      }
                      WheelPos -= 170;
                      return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
                      }
                      
                      
                      void FloatingFX() {
                      
                      
                      // Copy oma effect siia mida tahad p2rast muusika vait j22mist n2ha.
                      // Mina copysin RGBW strandesti" n2idise.
                      
                      
                      
                      
                      
                      
                      // Fill along the length of the strip in various colors...
                      colorWipe(strip.Color(255, 0, 0) , 50); // Red
                      colorWipe(strip.Color( 0, 255, 0) , 50); // Green
                      colorWipe(strip.Color( 0, 0, 255) , 50); // Blue
                      colorWipe(strip.Color( 0, 0, 0, 255), 50); // True white (not RGB white)
                      
                      whiteOverRainbow(75, 5);
                      
                      pulseWhite(5);
                      
                      rainbowFade2White(3, 3, 1);
                      }
                      
                      // Fill strip pixels one after another with a color. Strip is NOT cleared
                      // first; anything there will be covered pixel by pixel. Pass in color
                      // (as a single 'packed' 32-bit value, which you can get by calling
                      // strip.Color(red, green, blue) as shown in the loop() function above),
                      // and a delay time (in milliseconds) between pixels.
                      void colorWipe(uint32_t color, int wait) {
                      for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
                      strip.setPixelColor(i, color); // Set pixel's color (in RAM)
                      strip.show(); // Update strip to match
                      delay(wait); // Pause for a moment
                      }
                      }
                      
                      void whiteOverRainbow(int whiteSpeed, int whiteLength) {
                      
                      if(whiteLength >= strip.numPixels()) whiteLength = strip.numPixels() - 1;
                      
                      int head = whiteLength - 1;
                      int tail = 0;
                      int loops = 3;
                      int loopNum = 0;
                      uint32_t lastTime = millis();
                      uint32_t firstPixelHue = 0;
                      
                      for(; { // Repeat forever (or until a 'break' or 'return')
                      for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
                      if(((i >= tail) && (i <= head)) || // If between head & tail...
                      ((tail > head) && ((i >= tail) || (i <= head)))) {
                      strip.setPixelColor(i, strip.Color(0, 0, 0, 255)); // Set white
                      } else { // else set rainbow
                      int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
                      strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));
                      }
                      }
                      
                      strip.show(); // Update strip with new contents
                      // There's no delay here, it just runs full-tilt until the timer and
                      // counter combination below runs out.
                      
                      firstPixelHue += 40; // Advance just a little along the color wheel
                      
                      if((millis() - lastTime) > whiteSpeed) { // Time to update head/tail?
                      if(++head >= strip.numPixels()) { // Advance head, wrap around
                      head = 0;
                      if(++loopNum >= loops) return;
                      }
                      if(++tail >= strip.numPixels()) { // Advance tail, wrap around
                      tail = 0;
                      }
                      lastTime = millis(); // Save time of last movement
                      }
                      }
                      }
                      
                      void pulseWhite(uint8_t wait) {
                      for(int j=0; j<256; j++) { // Ramp up from 0 to 255
                      // Fill entire strip with white at gamma-corrected brightness level 'j':
                      strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
                      strip.show();
                      delay(wait);
                      }
                      
                      for(int j=255; j>=0; j--) { // Ramp down from 255 to 0
                      strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
                      strip.show();
                      delay(wait);
                      }
                      }
                      
                      void rainbowFade2White(int wait, int rainbowLoops, int whiteLoops) {
                      int fadeVal=0, fadeMax=100;
                      
                      // Hue of first pixel runs 'rainbowLoops' complete loops through the color
                      // wheel. Color wheel has a range of 65536 but it's OK if we roll over, so
                      // just count from 0 to rainbowLoops*65536, using steps of 256 so we
                      // advance around the wheel at a decent clip.
                      for(uint32_t firstPixelHue = 0; firstPixelHue < rainbowLoops*65536;
                      firstPixelHue += 256) {
                      
                      for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
                      
                      // Offset pixel hue by an amount to make one full revolution of the
                      // color wheel (range of 65536) along the length of the strip
                      // (strip.numPixels() steps):
                      uint32_t pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
                      
                      // strip.ColorHSV() can take 1 or 3 arguments: a hue (0 to 65535) or
                      // optionally add saturation and value (brightness) (each 0 to 255).
                      // Here we're using just the three-argument variant, though the
                      // second value (saturation) is a constant 255.
                      strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue, 255,
                      255 * fadeVal / fadeMax)));
                      }
                      
                      strip.show();
                      delay(wait);
                      
                      if(firstPixelHue < 65536) { // First loop,
                      if(fadeVal < fadeMax) fadeVal++; // fade in
                      } else if(firstPixelHue >= ((rainbowLoops-1) * 65536)) { // Last loop,
                      if(fadeVal > 0) fadeVal--; // fade out
                      } else {
                      fadeVal = fadeMax; // Interim loop, make sure fade is at max
                      }
                      }
                      
                      for(int k=0; k<whiteLoops; k++) {
                      for(int j=0; j<256; j++) { // Ramp up 0 to 255
                      // Fill entire strip with white at gamma-corrected brightness level 'j':
                      strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
                      strip.show();
                      }
                      delay(1000); // Pause 1 second
                      for(int j=255; j>=0; j--) { // Ramp down 255 to 0
                      strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
                      strip.show();
                      }
                      }
                      
                      delay(500); // Pause 1/2 second
                      }
                      "No one likes a smartass, but everyone loves being one"

                      Comment


                        #56
                        Esmalt postitatud Ints28 poolt Vaata postitust
                        Tundub, et huvitav teema tekkinud. ....
                        . VU meetri jaoks sai ka plaadid söövitatud. See teeks siis asja lihtsamaks, kui selle vaba moodi sama plaadile saaks panna heli vaikides toimima.?
                        Kui nullist ehitama hakata, siis soovitaks ajuks pigem ESP32 võtta - sellel mälu ja arvutusvõimsust rohkem - saab demo modi jaoks vingemaid animatsioone kasutada.
                        Samuti pole seal algsel Arduino nanoga skeemil USB pesa küljes peab eraldi programmaatoriga rahmeldama.
                        ESP32 manageeri ja programmeeri kasvõi üle WiFi või üle interneti kust iganes.
                        viimati muutis kasutaja klm; 11 m 2020, 18:19.
                        MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                        KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                        Comment


                          #57
                          Esmalt postitatud klm poolt Vaata postitust

                          Kui nullist ehitama hakata, siis soovitaks ajuks pigem ESP32 võtta - sellel mälu ja arvutusvõimsust rohkem - saab demo modi jaoks vingemaid animatsioone kasutada.
                          Samuti pole seal algsel Arduino nanoga skeemil USB pesa küljes peab eraldi programmaatoriga rahmeldama.
                          ESP32 manageeri ja programmeeri kasvõi üle WiFi või üle interneti kust iganes.
                          Esp-ga avanevad täiesti uued võimalused tõesti , hind pole ka krõbe. See pro mini arduino ei ole eriti hea üldse ses suhtes et siis juba esp-ga sama suur arduino nano ilma pinnideta sellel on mini usb ja palju lihtsam.
                          esp8266 saab päris eduka wifi jammeri ehitada mis nõuka aegse kortermaja wifid kõik pimedaks tõmbab. Naised saunas teadsi rääkida
                          "No one likes a smartass, but everyone loves being one"

                          Comment


                            #58
                            Esmalt postitatud Firefox poolt Vaata postitust
                            Esp-ga avanevad täiesti uued võimalused tõesti , hind pole ka krõbe. ...
                            Kui hiinast kümne kaupa kloone tellida, siis alates euro tükk

                            PS. Aga mina olen tavaliselt nii kolmeeuroseid kahe kaupa tellinud - 16 Mega mälu ja kindlasti CH340 kiviga.
                            Ja kumbki eri ali müüja käest.
                            viimati muutis kasutaja klm; 12 m 2020, 13:02.
                            MINULE EI MEELDI KUI MÕNINGAD ISIKUD MINU POSTITUSI MUUDAVAD,
                            KUI POSTITUS EI SOBI SIIS PALUKS SEE KUSTUTADA !

                            Comment


                              #59
                              Simulatsioon : https://tinyurl.com/yafe6at4
                              Legend :
                              • Kui sisend on piisavalt võimas ning õige nivoo ja amplituudiga -- siis piisab viimasest astmest ("auto-tracking" diferentsiaator väljund Q) // -- selline R2R väljund lähed detekteeri-/alada -misele ... detektori väljund → Low-pass´i / integraatorisse ← juhib releed
                              • All-Pass filtrid ja summaatori (väljundid X , Y ja Z) võib asendada mistahes amplituudi piirajaga või muu vajalikuga ... näit. auto-nivoo järguri / AC-pass + DCkomponendi lisajaga ...
                              Milleks :
                              • ... need LM358 (omab PNP dif.-sisend-astet !!!) asjad on mitte paindlikud ja tiba krüptilised
                                -- (ega minu simulatsioon ka eriti üld-arusaadavam pole aga seda annab interaktiivselt häälestada ... jne.)
                              • et illustreerida relee juhtimiseks vajaminevaid loogilisi mooduleid :
                                • attenuaator (vahelduvvolu amplituud)
                                  diskriminaator (amplituudipiiraja)
                                • nivoo muundur (DC konmponendi seadistus)
                                • diferentsiaator
                                • silufilter ≈ (madalpääs filter / integraator) ≈ ((amplituudi detektor peak detector))
                                • ...
                              OK , ma üritan seda asja inimesele arusaadavalt seletada :
                              1. Sa ei taha oma sisendit (sisendsignaali) häirida ja/või koormata
                                -- selleks pead selle lahtisidestama ja/või puhvrdama
                              2. Sisendsignaal võib sisaldada liini- või muud müra
                                -- see tuleks ära filtreerida -- seda kas madalpääs või ribafiltriga u. 600 Hz ... 2kHz (... 7kHz)
                                -- lugu võib alata ka madalate trummilöökidega ...
                              3. Vahelduv sisendpinge võib olla vahemikus ±5mV ... ±500mV (... ja ka oluliselt rohkem kui on tegemist lõppvõimendusastme väljundiga)
                                -- sisendile järgnev ahel peab sellele vastu pidama ...
                              4. Loo (muusikapala) sees võib olla vaikusehetki
                                -- relee ei saa sõltuda vahetult 0.6...2 kHz sisendi olemasolust ... vaid peab omama mingit lugude vahest väiksemat aegviidet väljalülitumisele
                              5. jne. ...
                              viimati muutis kasutaja ci139; 21 m 2020, 20:46.

                              Comment


                                #60
                                Esmalt postitatud klm poolt Vaata postitust
                                Vs: Helisignaaliga käivituv relee

                                See MSEQ7 on üks ütlemata kaval kivi Arduinoga värvimuusika ehitamiseks.
                                Tuleb jälle noorus meelde - mingi aeg kõik ehitasid värvimuusikaid.
                                Igatahes sai hiinast ära tellitud, kui kohal eks siis saab katsetada.
                                https://www.aliexpress.com/item/32860364441.html
                                Tundub põnev.
                                Sooviks neid katsetusi isegi näha.
                                Ammu on juba mõttes olnud,miks tänapäeval enam ei teha värvimuusikaid,kuigi LED ribadega annaks ägedaid asju teha.

                                Comment

                                Working...
                                X