Diferencia entre revisiones de «Sensor de proximidad infrarrojo»

Sin resumen de edición
Sin resumen de edición
 
(No se muestra una edición intermedia de otro usuario)
Línea 442: Línea 442:
   analogWrite(10, difference);
   analogWrite(10, difference);
   //analogWrite(11, difference);
   //analogWrite(11, difference);
if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
  }
}
int leerSensor(int pinLed, int pinSensor)
{
  digitalWrite(pinLed, HIGH);
  delay(1);
  int max_enc = 0;
  for (int i = 0; i < 100; i++) {
    int v = analogRead(pinSensor);
    if (v > max_enc) max_enc = v;
   
  }
 
  digitalWrite(pinLed, LOW);
  delay(1);
  int max_apa = 0;
  for (int i = 0; i < 100; i++) {
    int v = analogRead(pinSensor);
    if (v > max_apa) max_apa = v;
  }
  int difference = max_apa - max_enc;
  return difference;
}
void printDetail(uint8_t type, int value){
  switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
      break;
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
      break;
    case DFPlayerUSBInserted:
      Serial.println("USB Inserted!");
      break;
    case DFPlayerUSBRemoved:
      Serial.println("USB Removed!");
      break;
    case DFPlayerPlayFinished:
      Serial.print(F("Number:"));
      Serial.print(value);
      Serial.println(F(" Play Finished!"));
      //myDFPlayer.next();
      break;
    case DFPlayerError:
      Serial.print(F("DFPlayerError:"));
      switch (value) {
        case Busy:
          Serial.println(F("Card not found"));
          break;
        case Sleeping:
          Serial.println(F("Sleeping"));
          break;
        case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
          break;
        case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
          break;
        case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
          break;
        case FileMismatch:
          Serial.println(F("Cannot Find File"));
          break;
        case Advertise:
          Serial.println(F("In Advertise"));
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
}
</syntaxhighlight>
* Avances Código
<syntaxhighlight lang="c++" line copy>
/***************************************************
DFPlayer - A Mini MP3 Player For Arduino
<https://www.dfrobot.com/product-1121.html>
***************************************************
This example shows the basic function of library for DFPlayer.
Created 2016-12-07
By [Angelo qiao](Angelo.qiao@dfrobot.com)
GNU Lesser General Public License.
See <http://www.gnu.org/licenses/> for details.
All above must be included in any redistribution
****************************************************/
/***********Notice and Trouble shooting***************
1.Connection and Diagram can be found here
<https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
2.This code is tested on Arduino Uno, Leonardo, Mega boards.
****************************************************/
#include "Arduino.h"
#include "DFRobotDFPlayerMini.h"
#include <SoftwareSerial.h>
SoftwareSerial softSerial(/*rx =*/4, /*tx =*/5);
#define FPSerial softSerial
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
int baselineVolume = 20;
void setup(){
  // sensor1
  //pinMode(A0, INPUT_PULLUP);
  //pinMode(8, OUTPUT);
  // sensor2
  pinMode(A1, INPUT_PULLUP);
  pinMode(7, OUTPUT);
  // salida filtro -> vca2
  pinMode (10, OUTPUT);
  // salida filtro -> vca1
  //pinMode (11, OUTPUT);
  Serial.begin(9600);
  FPSerial.begin(9600);
  Serial.println();
  Serial.println(F("DFRobot DFPlayer Mini Demo"));
  Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));
 
 
  while (!myDFPlayer.begin(FPSerial, /*isACK = */true, /*doReset = */true)) {  //Use serial to communicate with mp3.
    Serial.println(F("Unable to begin:"));
    Serial.println(F("1.Please recheck the connection!"));
    Serial.println(F("2.Please insert the SD card!"));
    delay(500);
  }
  Serial.println(F("DFPlayer Mini online."));
 
  myDFPlayer.volume(20);  //Set volume value. From 0 to 30
  myDFPlayer.play(4);  //Play the first mp3
  myDFPlayer.enableLoop();
 
  int val = 0;
  analogWrite(10, val);
  //analogWrite(11, val);
 
}
void loop() {
  int difference;
  //difference = leerSensor(8, A0);
  difference = leerSensor(7, A1);
  delay(50);
  // bajar señal minima del sensor
  difference = difference -5;
  //entre 0 y 255, ni mas ni menos
  if (difference < 0) difference = 0;
  if (difference > 255) difference = 255;
  analogWrite(10, difference);
  //analogWrite(11, difference);
  Serial.println("0 300 " + String(difference) + " " + myDFPlayer.readVolume());


  if (myDFPlayer.available()) {
  if (myDFPlayer.available()) {
Línea 540: Línea 733:
= Circuitos =
= Circuitos =
<gallery>
<gallery>
LED-LDR-VCA.gif | VCA usando un LDR
Esquematico-vca.jpg | VCA usando un LDR
</gallery>
</gallery>