Теория:

Омонимы (от греч. homos — одинаковый, оnyma — имя) — это слова, разные по значению, но одинаковые по звучанию.
Пример:
ключ1 — металлический стержень для отпирания двери; ключ2 — место выхода подземных вод на поверхность земли; ключ3— нотный знак.
Выделяют два вида лексических омонимов: полные и неполные, или частичные.
Полные лексические омонимы представляют собой слова одного грамматического класса, у них совпадает вся система форм.
Пример:
гладь — «ровная поверхность, напр. гладь озера», гладь — «вид вышивки»; планировать — «плавно снижаться» и планировать — «составлять планы» и т. д.
При частичной (или неполной) омонимии разные по значению слова совпадают в звучании и написании не во всех, а только в некоторых грамматических формах.
Пример:
спутник — «небесное тело» и спутник — «попутчик». В первом случае слово будет склоняться как неодушевлённое существительное, во втором — как одушевлённое.
К неполным лексическим омонимам относятся и некоторые глаголы.
Пример:
закапывать — несов. вид от глагола закапать (лекарство) и закапывать — несов. вид от глагола закопать (что-то в землю).
Причины появления омонимов в языке различны. Так, омонимами могут стать иноязычные слова, случайно совпавшие с русскими по звучанию. 
Пример:
мат1 — (нем.) мягкая подстилка из прочного материала и мат2 — (араб.) поражение в шахматной партии.
Омонимы могут появляться как результат звуковых изменений, которые происходят в языке.
Пример:
Так возникли омонимы лечу (1 л. ед. ч. от глагола лететь) — лечу (1 л. ед. ч. от глагола лечить); мир (др.-рус. мiръ вселенная) — мир (др.-рус. миръ тишина, отсутствие войны).
Омонимы могут появляться в результате распада полисемии, когда значения многозначного слова настолько отдаляются друг от друга, что начинают восприниматься как разные слова.
Пример:
перо (часть крыла птицы) — перо (металлическое приспособление для письма); улитка (моллюск) — улитка (часть внутреннего уха) и др.
Кроме лексических омонимов (слов одной части речи), выделяют другие разновидности омонимии, а именно:
омоформы — слова, совпадающие по звучанию и написанию в какой-либо одной или нескольких грамматических формах.
Пример:
напасть (сущ.) — напасть (глаг.); мой (мест.) — мой (повел. накл. глаг.); стих (сущ.) — стих (прош. вр. глаг.); строй (повел. накл. глаг.) — строй (сущ.); лечу (лечить) — лечу (лететь).
Омофоны — слова, различные по написанию, но одинаковые по произношению.
Пример:
кот — код, отворила — отварила, изморозь — изморось, вперемежку — вперемешку, порок — порог, туш — тушь, умолять — умалять.
Омографы — слова, одинаковые по написанию, но различные по произношению.
Пример:
атлас — атлас, хлопок — хлопок, проволочка — проволочка, парить — парить, миловать — миловать.
Чтобы различить слова-омонимы, нужно обращать внимание на контекст. Явление омонимии может использоваться в качестве изобразительно-выразительного средства — для создания каламбуров.
Пример:
«Рыбачьей удалью блесну
И в речке возле леса
Поймаю щуку на блесну.
Эх, выдержала б леса