Wrote или have written

Есть ли здесь знающие и способные объяснить в каких случаях пишется "wrote", а в каких "have written" . К примеру "i wrote a poem for her yesterday" или "i have written a poem for her yesterday" - как правильно и почему? Совсем запутался с этим