element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum Arduino PIR and Camera module
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 1 reply
  • Subscribers 390 subscribers
  • Views 385 views
  • Users 0 members are here
  • pir
  • camera
  • arduino
Related

Arduino PIR and Camera module

atharvabenheckfan
atharvabenheckfan over 10 years ago

hi

I have written a code based on the arduino camera module example and have added a bit of pir example code to it but i'm running into some sort of problem where the code does not consider the pir and keeps looping images plese help the code is given below :

 

// This is a basic snapshot sketch using the VC0706 library.

// On start, the Arduino will find the camera and SD card and

// then snap a photo, saving it to the SD card.

// Public domain.

 

 

// If using an Arduino Mega (1280, 2560 or ADK) in conjunction

// with an SD card shield designed for conventional Arduinos

// (Uno, etc.), it's necessary to edit the library file:

//   libraries/SD/utility/Sd2Card.h

// Look for this line:

//   #define MEGA_SOFT_SPI 0

// change to:

//   #define MEGA_SOFT_SPI 1

// This is NOT required if using an SD card breakout interfaced

// directly to the SPI bus of the Mega (pins 50-53), or if using

// a non-Mega, Uno-style board.

 

 

#include <Adafruit_VC0706.h>

#include <SPI.h>

#include <SD.h>

 

 

// comment out this line if using Arduino V23 or earlier

#include <SoftwareSerial.h>       

 

 

// uncomment this line if using Arduino V23 or earlier

// #include <NewSoftSerial.h>     

 

 

// SD card chip select line varies among boards/shields:

// Adafruit SD shields and modules: pin 10

// Arduino Ethernet shield: pin 4

// Sparkfun SD shield: pin 8

// Arduino Mega w/hardware SPI: pin 53

// Teensy 2.0: pin 0

// Teensy++ 2.0: pin 20

#define chipSelect 4

 

 

// Pins for camera connection are configurable.

// With the Arduino Uno, etc., most pins can be used, except for

// those already in use for the SD card (10 through 13 plus

// chipSelect, if other than pin 10).

// With the Arduino Mega, the choices are a bit more involved:

// 1) You can still use SoftwareSerial and connect the camera to

//    a variety of pins...BUT the selection is limited.  The TX

//    pin from the camera (RX on the Arduino, and the first

//    argument to SoftwareSerial()) MUST be one of: 62, 63, 64,

//    65, 66, 67, 68, or 69.  If MEGA_SOFT_SPI is set (and using

//    a conventional Arduino SD shield), pins 50, 51, 52 and 53

//    are also available.  The RX pin from the camera (TX on

//    Arduino, second argument to SoftwareSerial()) can be any

//    pin, again excepting those used by the SD card.

// 2) You can use any of the additional three hardware UARTs on

//    the Mega board (labeled as RX1/TX1, RX2/TX2, RX3,TX3),

//    but must specifically use the two pins defined by that

//    UART; they are not configurable.  In this case, pass the

//    desired Serial object (rather than a SoftwareSerial

//    object) to the VC0706 constructor.

int pirPin = 5;

int calibrationTime = 30;

 

 

 

 

 

 

// Using SoftwareSerial (Arduino 1.0+) or NewSoftSerial (Arduino 0023 & prior):

#if ARDUINO >= 100

// On Uno: camera TX connected to pin 2, camera RX to pin 3:

SoftwareSerial cameraconnection = SoftwareSerial(2, 3);

// On Mega: camera TX connected to pin 69 (A15), camera RX to pin 3:

//SoftwareSerial cameraconnection = SoftwareSerial(69, 3);

#else

NewSoftSerial cameraconnection = NewSoftSerial(2, 3);

#endif

 

 

Adafruit_VC0706 cam = Adafruit_VC0706(&cameraconnection);

 

 

// Using hardware serial on Mega: camera TX conn. to RX1,

// camera RX to TX1, no SoftwareSerial object is required:

//Adafruit_VC0706 cam = Adafruit_VC0706(&Serial1);

 

 

void setup() {

  pinMode(pirPin, INPUT);

      for(int i = 0; i < calibrationTime; i++){

      Serial.print(".");

      delay(1000);

      }

    Serial.println(" done");

    Serial.println("SENSOR ACTIVE");

    delay(50);

 

 

  // When using hardware SPI, the SS pin MUST be set to an

  // output (even if not connected or used).  If left as a

  // floating input w/SPI on, this can cause lockuppage.

#if !defined(SOFTWARE_SPI)

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)

  if(chipSelect != 53) pinMode(53, OUTPUT); // SS on Mega

#else

  if(chipSelect != 10) pinMode(10, OUTPUT); // SS on Uno, etc.

#endif

#endif

 

 

  Serial.begin(9600);

  Serial.println("VC0706 Camera snapshot test");

 

  // see if the card is present and can be initialized:

  if (!SD.begin(chipSelect)) {

    Serial.println("Card failed, or not present");

    // don't do anything more:

    return;

  }

 

  // Try to locate the camera

  if (cam.begin()) {

    Serial.println("Camera Found:");

  } else {

    Serial.println("No camera found?");

    return;

  }

  // Print out the camera version information (optional)

  char *reply = cam.getVersion();

  if (reply == 0) {

    Serial.print("Failed to get version");

  } else {

    Serial.println("-----------------");

    Serial.print(reply);

    Serial.println("-----------------");

  }

 

 

  // Set the picture size - you can choose one of 640x480, 320x240 or 160x120

  // Remember that bigger pictures take longer to transmit!

 

  cam.setImageSize(VC0706_640x480);        // biggest

  //cam.setImageSize(VC0706_320x240);        // medium

  //cam.setImageSize(VC0706_160x120);          // small

  uint8_t imgsize = cam.getImageSize();

  Serial.print("Image size: ");

  if (imgsize == VC0706_640x480) Serial.println("640x480");

  if (imgsize == VC0706_320x240) Serial.println("320x240");

  if (imgsize == VC0706_160x120) Serial.println("160x120");

 

}

 

 

void loop() {

if(digitalRead(pirPin) == HIGH){

 

   Serial.println("Snap in 3 secs...");

   delay(3000);

 

 

   if (! cam.takePicture())

     Serial.println("Failed to snap!");

   else

     Serial.println("Picture taken!");

 

   // Create an image with the name IMAGExx.JPG

   char filename[13];

   strcpy(filename, "IMAGE00.JPG");

   for (int i = 0; i < 100; i++) {

     filename[5] = '0' + i/10;

     filename[6] = '0' + i%10;

     // create if does not exist, do not open existing, write, sync after write

     if (! SD.exists(filename)) {

       break;

     }

   }

   // Open the file for writing

   File imgFile = SD.open(filename, FILE_WRITE);

 

 

   // Get the size of the image (frame) taken

   uint16_t jpglen = cam.frameLength();

   Serial.print("Storing ");

   Serial.print(jpglen, DEC);

   Serial.print(" byte image.");

 

 

   int32_t time = millis();

   pinMode(8, OUTPUT);

   // Read all the data up to # bytes!

   byte wCount = 0; // For counting # of writes

   while (jpglen > 0) {

     // read 32 bytes at a time;

     uint8_t *buffer;

     uint8_t bytesToRead = min(32, jpglen); // change 32 to 64 for a speedup but may not work with all setups!

     buffer = cam.readPicture(bytesToRead);

     imgFile.write(buffer, bytesToRead);

     if(++wCount >= 64) { // Every 2K, give a little feedback so it doesn't appear locked up

       Serial.print('.');

       wCount = 0;

     }

     //Serial.print("Read ");  Serial.print(bytesToRead, DEC); Serial.println(" bytes");

     jpglen -= bytesToRead;

   }

   imgFile.close();

 

 

   time = millis() - time;

   Serial.println("done!");

   Serial.print(time); Serial.println(" ms elapsed");

}

 

}

  • Sign in to reply
  • Cancel
Parents
  • clem57
    clem57 over 10 years ago

    Please post serial output thanks.

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • clem57
    clem57 over 10 years ago

    Please post serial output thanks.

    Clem

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube