Alf81010
Published © GPL3+

Unique Arduino TFT Shield - OV7670 Cam Live View

Connecting OV7670 camera to Arduino Uno + TFT shield and viewing live video from the camera on a TFT shield screen.

IntermediateShowcase (no instructions)Over 4 days4,997

Things used in this project

Hardware components

Arduino UNO & Genuino UNO
Arduino UNO & Genuino UNO
×1
TFT shield for Arduino
×1
Camera OV7670 (without FIFO)
×1

Story

Read more

Schematics

OV7670 datasheet

Code

OV7670 regs

C/C++
#ifndef OV7670_REGS_H
#define OV7670_REGS_H

const uint8_t OV7670_VGA[][2] PROGMEM =
{
    {   1, 0x42}, // Size of byte, Address (ID) 
    { 640/16,  480/16}, // Size X, Size Y
    {0b01000010, 0b00000100}, // Reset_Enable_N, 7|6|5|4|3|Vsync Invert|Hsync Invert|0
    {0x3a, 0x0C},
    {0x40, 0xC0},
    {0x12, 0x00},
    {0x0c, 0x00},
    {0x3e, 0x00},
    {0x70, 0x3A},
    {0x71, 0x35},
    {0x72, 0x11},
    {0x73, 0xF0},
    {0xa2, 0x02},
    {0x11, 0x80},
    {0x7a, 0x18},
    {0x7b, 0x02},
    {0x7c, 0x07},
    {0x7d, 0x1F},
    {0x7e, 0x49},
    {0x7f, 0x5A},
    {0x80, 0x6A},
    {0x81, 0x79},
    {0x82, 0x87},
    {0x83, 0x94},
    {0x84, 0x9F},
    {0x85, 0xAF},
    {0x86, 0xBB},
    {0x87, 0xCF},
    {0x88, 0xEE},
    {0x89, 0xEE},
    {0x13, 0xE0},
    {0x00, 0x00},
    {0x10, 0x00},
    {0x0d, 0x00},
    {0x24, 0x98},
    {0x25, 0x63},
    {0x26, 0xD3},
    {0x2a, 0x00},
    {0x2b, 0x00},
    {0x2d, 0x00},
    {0x13, 0xe5},
    {0x13, 0xe7},
    {0x1e, 0x30},
    {0x74, 0x60},
    {0x01, 0x80},
    {0x02, 0x80},
    {0x15, 0x10},
    {0x4f, 0x40},
    {0x50, 0x34},
    {0x51, 0x0C},
    {0x52, 0x17},
    {0x53, 0x29},
    {0x54, 0x40},
    {0x57, 0x80},
    {0x58, 0x1e},
    {0x41, 0x10},
    {0x75, 0x60},
    {0x76, 0x50},
    {0x77, 0x48},
    {0x3d, 0x92},
    {0x3b, 0x00},
    {0x04, 0x00},
    {0xff, 0xff},
};        

#endif

Camera_Init

C/C++
Camera OV7670 init
/*
 * Arduino TFT_shield_v1.00 Camera OV7670 initialization example
 * 
 * Author: Kamil Lee (2019)
 * 
 * Comments: Camera OV7670 initialization
 * 
 * 
 */

#include <YATFT.h> // Hardware-specific library
#include <util/yacam.h>

#include "ov7670_regs.h"

YATFT tft(0);
CAM   cam;


/*******************************************************************************
*
*******************************************************************************/
void setup() {

    uint8_t state;

    // initialize the serial port
    Serial.begin(115200);
    Serial.println("Camera initialization example!");

    // initialize the display
    tft.begin();

    cam.CamInit(&OV7670_VGA[0][0]);
    cam.CamVideoPreview(0, 0, 1, true);
}

void loop()
{
}

Credits

Alf81010

Alf81010

7 projects • 33 followers

Comments