How to Use OV7670 Camera Module With Arduino?

574,480

282

58

About: ElecFreaks is an open design house founded in March 2011. Our goal is to create rapid prototypes and give small-batch manufacture solution for makers and startups. With over 50% staff as engineers and expand...

Here we introduced one OV7670 camera module just purchased online, including the communication of camera module and Arduino UNO, the using ways to take photo via camera module, and so on. This is an Arduino camera module, adopted the Surveillance cameras digital image processing chip-OV0706, specially designed for image acquisition and processing application, based on TTL communication interface, very convenient to connect with Arduino controller, able to read image and data via UART serial port, and then perform some image processing. This is a detailed DIY guide for the OV7670 TTL and UART camera, and you can also download the code from ElecFreaks.

Find source reading here: http://www.elecfreaks.com/7861.html

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: General Description

This camera module can perform image processing such as AWB (auto white balance), AE (automatic exposure) and AGC (automatic gain control), for the video signal coming from CMOS sensor. What’s more, in fusion of other advanced technology such as image enhancement processing under low illumination, and image noise intelligent forecast and suppress, this module would output high quality digital video signals by standard CCIR656 interface. OV7670 built-in JPEG decoder supported reatime encoding for collected image, and external controller can easily read the M – JPEG video streams, achieving the camera design of double stream. OV7670 supported motion detection and OSD display function of screen characters and pattern overlay, capable of self-defining detection area and sensitivity.

Step 2: Test OV7670 Camera Module - Needed Tool for Testing

  • Hardware

SD Module

Digital key module

Arduino UNO

Jumper wire

USB cable

OV7670 camera module

  • Software

Camera_VC0706_TEST

Arduino IDE(download it from official website)

Step 3: Hardware Connection

  1. Connect the hardware as the diagram shows.
  2. Physical diagram.

Step 4: Software Use and Code Programming

  1. Firstly download the two files of Camera_OV0706_lib and Camera_OV0706_TEST from the Camera Module Code written by ElecFreaks and then unzip it.
  2. Put the unzipped file of Camera_OV0706_lib into the Arduino IDE folder of Libraries.

  3. Open unzipped file of Camera_OV0706_TEST, and the program the code into UNO. The detailed steps are demonstrated in the pictures.

  4. Click Tools,and then choose the board of Arduino UNO.

  5. Click Tools / Serial Port,and then choose the corresponding COM number.

  6. And then click the button of programming like below in red rectangle, program the code into the UNO board until done uploading appears.

  7. Finally open the monitoring serial port as below in red rectangle.

  8. When the serial port display the data like demonstrated below, you can press the digital keys to take a photo.

  9. If photo was taken successfully, the serial port would be displayed.

Until now, the module testing has been completed. Thanks for reading.

3 People Made This Project!

Recommendations

  • Made with Math Contest

    Made with Math Contest
  • Multi-Discipline Contest

    Multi-Discipline Contest
  • Robotics Contest

    Robotics Contest

58 Discussions

None
aristarco.cortes

4 years ago

This camera is not the OV7670 model. It is actually the OV0706 model. It is very Confusing

2 replies
None
jilvir

2 years ago

Hi... I try it and there is an error in compiling the code... say something with the board... can you help? thanks...

1 reply
None
taocameraTiago Maciel

Reply 4 weeks ago

if you want active any sensor, you must know whether the platform has driver for the sensor ,if no, you should made the driver yourself if you need help,I'm glad to : rd@taocamera.com

None
Priyanshu roy

2 years ago

How can I use old mobile camera as a camera module I have a Nokia camera please anyone tell me about this 14 pin camera

images.jpg
2 replies
None
NajnarinPriyanshu roy

Reply 3 months ago

I also have it let me know if anyone finds solution.
Even i will let you know if i find any.

None
vinay0745Priyanshu roy

Reply 1 year ago

if you have done some with that camera ....please tell me...i have the same module too

None
ujaz99

5 months ago

I would like to have the ov7670 feed into a usb via a arduino nano so that I am just recordingnot sure how to go about it though I figure it shouldn't be to much hassle. PS I'm new to this

1 reply
None
sk11rsvmujaz99

Reply 4 months ago

please help me how to use ov7670 with arduino i am not able to do so
.

None
MUHAMMADS509

7 months ago

CMD shows
Access is denied. :|

Untitled.png

Does this camera have the ability to stream video or just take pictures?

None
llittlepage

2 years ago

Looks like the camera is an OV0706. See link

https://www.adafruit.com/product/1386?gclid=CjwKCAjw6ZLOBRALEiwAxzyCW5TY7nr7KzhoM2wy3VG1YdufSZ7X1dTka71Hxoo0zdZS7B5QHBEJsRoCi3sQAvD_BwE

None
Pochon

2 years ago

Arduino:
1.6.8 (Windows 10), Board: "Arduino/Genuino Uno"

C:\Users\MONZÓN\Desktop\arduino-1.6.8\libraries\camera_VC0706\camera_VC0706.cpp:63:9:
error: prototype for 'uint8_t camera_VC0706::setMotionStatus(uint8_t, uint8_t,
uint8_t)' does not match any in class 'camera_VC0706'

uint8_t camera_VC0706::setMotionStatus(uint8_t
x, uint8_t d1, uint8_t d2) {

^

In file
included from C:\Users\MONZÓN\Desktop\arduino-1.6.8\libraries\camera_VC0706\camera_VC0706.cpp:10:0:

C:\Users\MONZÓN\Desktop\arduino-1.6.8\libraries\camera_VC0706\camera_VC0706.h:78:11:
error: candidate is: boolean camera_VC0706::setMotionStatus(uint8_t, uint8_t,
uint8_t)

boolean setMotionStatus(uint8_t x, uint8_t
d1, uint8_t d2);

^

exit status
1

Error
compiling for board Arduino/Genuino Uno.

This report
would have more information with

"Show
verbose output during compilation"

option
enabled in File -> Preferences.